R中的圆形或/函数中的错误?

时间:2018-05-25 18:17:09

标签: r

试试这段代码:

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>

1 个答案:

答案 0 :(得分:0)

这是因为55.8 / 1.8在浮点数学中不完全是31:

> format(55.8/1.8, digits=22)
[1] "30.99999999999999644729"

这是因为您使用的数字没有精确的浮点表示。