![为什么这个简单的 Excel 计算结果不为零?](https://linux22.com/image/1358631/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84%20Excel%20%E8%AE%A1%E7%AE%97%E7%BB%93%E6%9E%9C%E4%B8%8D%E4%B8%BA%E9%9B%B6%EF%BC%9F.png)
它应该是零,但由于某种原因,结果在末尾产生了一系列特殊的数字。
另外,这是它的 .xlsx 文件:http://83.212.111.36/Book1.xlsx
答案1
发生这种情况是因为计算机上浮点数表示的精度有限,并且无法修复,因为这是计算机上数字表示方式的固有问题。可能有解决方法,例如 round() 或巧妙地实施公式以减少错误传播。
Excel 使用 8 字节(64 位)浮点表示,这意味着它的最大精度可以达到约 10^-15。误差会分散到计算的各个步骤中。
我建议你读一下维基百科上的这篇文章调查这个话题。
答案2
自发帖:这是浮点运算的记录限制:http://support.microsoft.com/kb/78113
在我看来,当结果明显错误而不能被视为错误时,应该更明显地发出警告,但无论如何。
一种解决方法是使用 round()。