提出这个问题有点尴尬,但我不知道如何理解这个问题。在做其他事情时,我在R:
中运行了这个计算(-3/5*2) + (2/5*3)
[1] 2.220446e-16
输出实际应该是 0 ,所以我不明白R的输出来自何处。我尝试重新启动R并以不同的方式表达此计算(例如,使用小数而不是分数)。另外,如果我替换第二个术语,现在R给出了预期的输出:
(-3/5*2) + 6/5
[1] 0
有什么想法吗?
答案 0 :(得分:2)
您正在看到这些结果,因为通常情况下,浮点数的计算机算法并不精确(不仅仅在R中)。 2.220446e-16 基本上 0.
这是一个有用的pdf,专门针对R: https://www.stat.auckland.ac.nz/~stat782/downloads/04-Numerics.pdf