[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