2015-10-01 40 views
0

我用Excel 2013在Windows 7值与这应该是相同的差异比较不

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

1.24 = 66.64 - 65.4 

下面是我用的,结果应该是数学上等于公式,但它给了我不等于:

=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 

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

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

回答

2

排序错误 - 我怀疑是由于精度有限,反过来又是表示浮点数的结果。该方法ROUND这是迫使一些近似,说:

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

Excel的15 digit precision floating point errors并不适用于所有的号码组合出现;仅当小数由于有限的小数位数而向上舍入或向下舍入时。时间值是臭名昭着的这些错误。

因此,您的第一组数字(1.24 = 66.64 - 65.4)会在某个点上由于数字舍入而产生浮点错误。第二组数字(1.24 = 56.64 - 55.4)愉快地没有表现出这种行为。

15 digit precision error

可以将前面的形象,是您拓展足够的小数浮点错误变得明显的看到。

更多在Floating-point arithmetic may give inaccurate results in Excel

相关问题