试试这段代码:
R version 3.4.4 (2018-03-15) -- "Someone to Lean On"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
[...]
> round(55.8/1.8)
[1] 31
> 55.8/1.8
[1] 31
> round(55.8/1.8) == (55.8/1.8)
[1] FALSE
> round(55.8/1.8) - (55.8/1.8)
[1] 3.552714e-15
怎么可能?这是一个错误吗?我通过检查round
值是否等于/
运算符的结果来验证数据集中的某些数据,我在其中查找两个数字之间的除法不是整数的记录。 / p>
答案 0 :(得分:0)
这是因为55.8 / 1.8在浮点数学中不完全是31:
> format(55.8/1.8, digits=22)
[1] "30.99999999999999644729"
这是因为您使用的数字没有精确的浮点表示。