用于比较2个数字的VBA代码给出了不同的结果

我有下面最后一行包含以上单元格的总和(7,6)。 这是一个像这样的公式: =SUM(E6:E26)

此外,当有效不等于7.6时,我会编写一些vba来设置为红色。 奇怪的是,有时SUM值不被视为7,6,即使它是。 然后有时它是红色的,应该是黑色的。

在这里输入图像说明

这里是代码:

  If (Cells(TABLE_TOTAL_ROW, curCol).Value = 7.6) Then ''' Set text in black (automatic) With Cells(TABLE_TOTAL_ROW, curCol).Font .ColorIndex = xlAutomatic .TintAndShade = 0 End With Else ''' Set text in red With Cells(TABLE_TOTAL_ROW, curCol).Font .Color = -16776961 .TintAndShade = 0 End With End If 

下面:我设置了一个断点:在立即窗口中,我得到了7,6的值。 在下面,我比较,它返回false

在这里输入图像说明

对我来说很奇怪

不要比较浮点值是否相等,因为某些值不能精确表示。

 7.6 is probably 7.5999999 (or similar) 

7.6不匹配的是显示四舍五入。

改为使用公差:

 if Abs(x - y) < tolerance 

公差是0.000001的值