R中的模数错误

时间:2012-11-28 21:28:02

标签: r modulo

  

可能重复:
  Why are these numbers not equal?

刚刚注意到R.中的这个错误。我猜这是代表0.6的方式,但是有人知道到底发生了什么?

根据R:

0.3 %% 0.2 = 0.1
0.4 %% 0.2 = 0
0.5 %% 0.2 = 0.1
**0.6 %% 0.2 = 0.2**
0.7 %% 0.2 = 0.1
0.8 %% 0.2 = 0

发生了什么事?

1 个答案:

答案 0 :(得分:5)

除了@joshua Ulrich的评论

来自?'%%'

%%和x%/%y可用于非整数y,例如1%/%0.2,但结果受到表示错误的影响,因此可能与平台有关。因为0.2的IEC 60059表示是略大于0.2的二进制分数,1%/%0.2的答案应为4,但大多数平台给出5.

也类似于我们为什么得到这个

> .1 + .1 + .1 == .3
[1] FALSE
正如@Ben Boker指出的那样,你可能想要使用像

这样的东西
> 3:8 %% 2 / 10
[1] 0.1 0.0 0.1 0.0 0.1 0.0