首页 > 解决方案 > 在 R 中,为什么 %% 对十进制数的行为不同?

问题描述

在 R 中,我想检查一个数字是否是另一个数字的倍数。这适用于整数

> 124%%1
[1] 0
> 124%%2
[1] 0

但是由于某些神秘的原因不能很好地处理十进制数,知道为什么不是1.05%%0.050吗?

> 0.05%%0.05
[1] 0
> 1.05%%0.05
[1] 0.05

标签: rdivision

解决方案


根据?"%%"

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


推荐阅读