2012-05-21 32 views
2

雖然除以兩個浮點值,但由於精度錯誤,我得到的答案不正確。例如,1001.05/5.0應該等於200.21,但我得到了200.2099999999。數學函數庫中的除法函數如何處理精度誤差,除法運算符無法執行?

使用來自我們的數學庫的分割函數而不是'/'來獲得correcto結果。那麼這個庫函數做些什麼來糾正精度錯誤?你可以解釋一下,或者向我提供關於標準算法的信息,這些標準算法用於糾正精度錯誤,而這個函數一直使用這些信息。

+3

也許你可以編輯你的問題,告訴我們你正在使用什麼語言,以及你在談論什麼庫? – AakashM

回答

6

您的數學庫不使用浮點數,或者在打印出結果時舍入結果。 200.21不能用標準浮點數精確表示。

+1

+1。這不是分歧是錯誤的,但200.21或1001.05都不能用IEEE形式表示爲漂浮物。由於輸出通常是四捨五入的,因此很多人都不知道總是有浮點垃圾。 – 2012-05-21 13:10:04