比较价值和差异应该是相同的不是

我在Windows 7上使用Excel 2013。

我使用基本的IF和一些运算符做了一些Excel数据检查。 而且我遇到了一个问题,导致结果不一致。 我检查的是:

1.24 = 66.64 - 65.4 

下面是我使用的公式,结果应该在math上是相等的,但它给我不等于:

 =IF(1.24 = 66.64 - 65.4, "EQUAL", "NOT EQUAL") ;Result: NOT EQUAL 

我试图稍微修改数据到:

 =IF(1.24 = 56.64 - 55.4, "EQUAL", "NOT EQUAL") ;Result: EQUAL 

我很惊讶,它返回正确的结果。

这是一个错误,如果是这样,有什么解决方法我可以用于类似的检查?

sorting的错误 – 我怀疑由于精度有限,而这又是表示浮点数的结果。 圆的方式是强制一些近似,说:

 =IF(ROUND(1.24,2) = ROUND(56.64 - 55.4,2), "EQUAL", "NOT EQUAL") 

Excel的15位精度浮点错误不会发生在每个数字组合上; 只有当小数由于有限的小数点数而向上舍入或向下舍入时。 时间值是臭名昭着的这些错误。

所以你的第一组数字( 1.24 = 66.64 - 65.4 )会在某个时候由于数字化而产生浮点错误。 第二组数字( 1.24 = 56.64 - 55.4 )愉快地没有performance出这种行为。

15位精度错误

您可以在前面的图像中看到,如果足够扩展小数点,则浮点错误将变得明显。

更多浮点运算可能会导致Excel中不准确的结果 。