-1

可能重复:
Excel VBA 双重加法错误

我在 Excel 中有一个非常简单的 VBA 宏,可以计算两个数字之间的差异。当我尝试计算 0.7 和 0.65 之间的差异时,它返回 4.99999999999999E-02。为什么?

这是我的功能:

Public Function Diff(x As Double, y As Double) As Double
    Diff = x - y
    Debug.Print Diff
End Function 

这是我在“立即”窗口中看到的内容:

4.99999999999999E-02 

要复制此“错误”,您可以在“立即”窗口中键入“?0.7-0.65”,然后查看您得到的回报。

4

1 回答 1

5

浮点表示只是近似值 - 不可能以二进制存储任意小数。谷歌“浮点错误”的一些背景和例子,或见维基百科文章浮点

于 2012-08-20T19:23:19.570 回答