Is %
Modulo?
That depends on language you are using. But In general floating point values does not know modulo operation. You can compute it on your own. Let assume positive floating numbers a=7.654
and b=10000.0
so
d = a/b = 0.0007654 // division
r = d-floor(d) = (0.0007654-0.0) = 0.0007654 // remainder
r = r*b = (0.0007654*10000.0) = 7.654 // rescale back
floor(x)
rounds down to nearest less or equal number to x
d
holds the floating division result
r
holds the remainder (modulo)
Another example a=123.456
and b=65
d = a/b = 1.8993230769230769230769230769231
r = (d-floor(d))*b = 58.456
This can be used for integer and decimal values of a,b
but beware the floating point unit performs rounding and can loose precision after few digits... If I remember correctly 64 bit double
variables are usually usable maximally up to 18
digits.
[Edit1] hmm you reedited the question to completely different problem
So you are searching for modpow
. You can google for java implementation of modpow
. For example here
You can find mine implementation in C++ on 32 bit integer arithmetics but with static modulo prime with specific properties. Still if you change all the
if (DWORD(d)>=DWORD(p)) d-=p;
to d=d%p;
it would work for any modulo. you will need modpow,modmul,modadd,modsub
.