使用Excel 2013,在兩個單元格中輸入這個結果會得到不同的結果。Excel中的圓函數(工作表一)
=ROUND((10.45-10.00)/1,1) = 0.4
但
=ROUND(0.45/1,1) = 0.5
而且我不知道爲什麼是這樣的情況。任何人都有解釋?
使用Excel 2013,在兩個單元格中輸入這個結果會得到不同的結果。Excel中的圓函數(工作表一)
=ROUND((10.45-10.00)/1,1) = 0.4
但
=ROUND(0.45/1,1) = 0.5
而且我不知道爲什麼是這樣的情況。任何人都有解釋?
因爲Excel使用浮點數學,所以結果不能保證精確。在我的Excel 2013安裝中,如果我在單元格中輸入=10.45-10.00
,則將該單元格更改爲數字,精度爲30位小數,實際答案爲0.449999999999999000000000000000
。由於0.44999...
和0.45
位於舍入邊界的相反側,所以它們以不同方式舍入小數點後一位。
編輯參見this answer和問題等回答,這深究爲什麼Excel的數學是不準確的更多的細節。
它看起來像頂級計算創造了無限小的差異。爲了看到這一點,將公式從ROUND函數中拉出來。使用「增加十進制」按鈕,將兩個值都擴展到15個以上的小數位。你會看到最高值實際上是0.449999999999999。
我不知道爲什麼它實際上這樣做。