2015-10-01 73 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

相關問題