[R] modulo operation
Barry Rowlingson
b.rowlingson at lancaster.ac.uk
Thu Sep 9 13:56:39 CEST 2010
2010/9/9 "José M. Blanco Moreno" <jmblanco at ub.edu>:
> Dear R-users,
> May be there is something that I am not understanding, missed or else...
> Why do these operations yield these results?
>> 25%/%0.2
> [1] 124
>> 25%%0.2
> [1] 0.2
>
> I would expect (although I know that what I do expect and what is really
> intended in the code may be different things)
>> 25/0.2
> [1] 125
>> 25 - floor(25/0.25)*0.25
> [1] 0
>
> (At least this second one is what I would expect from the code in
> arithmetic.c, lines 168 to 178)
Did you read the documentation before you read the code?
‘%%’ and ‘x %/% y’ can be used for non-integer ‘y’, e.g. ‘1 %/%
0.2’, but the results are subject to rounding error and so may be
platform-dependent. Because the IEC 60059 representation of ‘0.2’
is a binary fraction slightly larger than ‘0.2’, the answer to ‘1
%/% 0.2’ should be ‘4’ but most platforms give ‘5’.
I suspect that is relevant to your interests....
Barry
More information about the R-help
mailing list