可能重复:
为什么这些数字不相等?
刚刚注意到 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
这是怎么回事?
可能重复:
为什么这些数字不相等?
刚刚注意到 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
这是怎么回事?
除了@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