modulo operator %

User Forummodulo operator %
Giuseppe Alesii asked 3 years ago

hy there,  I apologize in advance for the silly question, but

8.66 % 3 should be 2.66

as a matter of fact it is equal to $8.66 - 3 \cdot trunc(\frac{8.66}{3})$ = 2.66

I have checked it also with the remainder function in OpenOffice calc and it gives 2.66

Gauss, instead, gives: 8.66%3 = 0.0000

Am I using it the wrong way?

Is there a way to get the same result as in OpenOffice Calc with % in Gauss ?

Thanks in advance for your reply.


2 Answers
aptech Staff answered 3 years ago

The modulo operator operates on integers. In your example 8.66 is being rounded to 9 and (9 % 3) = 0 so, that explains what you are seeing. If you want a decimal or floating point modulus operation, use the function fmod.

r = fmod(8.66, 3);
print r;

will return:

Giuseppe Alesii answered 3 years ago

Thanks a lot, I really appreciate.