2009年11月1日 星期日

如何修正浮點算術中的進位誤差

針對浮點數字進行算術運算時,可能會產生看似有微量誤差而不正確的結果。例如,方程式
=1*(.5-.4-.1)
可能會評估為 (-2.78E-17) 或 -0.0000000000000000278,而非 0。

如上在EXCEL或OpenOffice.org Calc都有同樣問題,解決方式如下:

降低浮點算術儲存不正確的影響,請使用 Round() 函數,將數字四捨五入到計算所需的小數位數。例如,如果您是使用貨幣,則可能會四捨五入到小數點 2 位數:

=ROUND(1*(0.5-0.4-0.1),2)


資料來源:
http://support.microsoft.com/default.aspx/kb/214118/zh-tw

沒有留言:

Search Google

Google

熱門文章