与R非常奇怪的算术输出

时间:2014-01-15 19:01:44

标签: r sum

提出这个问题有点尴尬,但我不知道如何理解这个问题。在做其他事情时,我在R:

中运行了这个计算
(-3/5*2) + (2/5*3)
[1] 2.220446e-16

输出实际应该是 0 ,所以我不明白R的输出来自何处。我尝试重新启动R并以不同的方式表达此计算(例如,使用小数而不是分数)。另外,如果我替换第二个术语,现在R给出了预期的输出:

(-3/5*2) + 6/5
[1] 0

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您正在看到这些结果,因为通常情况下,浮点数的计算机算法并不精确(不仅仅在R中)。 2.220446e-16 基本上 0.

这是一个有用的pdf,专门针对R: https://www.stat.auckland.ac.nz/~stat782/downloads/04-Numerics.pdf