请考虑以下几点:
> x<-178379.4999999999999999999999999999999
> x
[1] 178379.5
> round(x)
[1] 178380这似乎是一个基本的舍入错误。R中有已知的舍入误差吗?还是因为即使在工作记忆中,R也只能处理22位数字?
发布于 2018-07-20 21:36:04
这是两个非常频繁的A'd Q的组合。
options(digits=22)设置为将数字打印到更多的小数位,则不会有任何帮助;由于R只存储多达53位二进制/22位小数位的精度,所以精度已经丢失。这是关于打印精度的而不是。
如果你少用9‘s,你就会看到你期望的东西(这将是R有限的打印精度加上预期的四舍五入的组合)。
> x <- 178379.49
>
> x
[1] 178379.5 ## prints as .5, but full precision is present
> round(x)
[1] 178379发布于 2018-07-20 21:28:44
发布于 2018-07-20 21:33:12
https://stackoverflow.com/questions/51450396
复制相似问题