Excel-VBA中的计算不准确

时间:2012-08-20 19:17:02

标签: excel vba excel-vba

  

可能重复:
  Excel VBA Double Addition Error

我在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”,看看你得到了什么。

1 个答案:

答案 0 :(得分:5)

浮点表示只是近似值 - 不能以二进制形式存储任意小数部分。谷歌针对某些背景和示例提出“浮点错误”,或参阅有关浮点的wikipedia文章