3

可能重复:
为什么这些数字不相等?

刚刚注意到 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

这是怎么回事?

4

1 回答 1

6

除了@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
于 2012-11-28T21:48:49.157 回答