2010-10-13 64 views
0

這可能是一個愚蠢的問題要問:在使用浮點數時,有一些四捨五入的小數位,如何檢查四捨五入錯誤,最好在java或C?任何建議將不勝感激。如何檢查四捨五入錯誤?

+1

有一個技巧,你改變舍入模式,重複計算,並看看結果是否是相同(如果不相同,差異會給你一些想法如何在數值上穩定你的算法)。如果支持,您可以用''中的'fesetround'在C中執行此操作。但答案是「發生了四捨五入?」幾乎總是「是」,所以如果你只是假設它已經失去了通用性,並且想知道它對結果有多大影響;-) – 2010-10-13 01:49:19

回答

0

那麼,你可以做一些沒有舍入的操作,並比較結果。例如,在java中,您可以使用Big Decimal在用float ...做完之後執行操作,並查看最終是否使用相同的數字。

更好的問題是,你爲什麼要這樣做?浮動通常會做怪異的回合,你不想在需要精確度的任何地方使用它(即使用銀行交易)。在這種情況下,請使用大十進制。但如果你只是想在屏幕上顯示一個3D點,1.5到1.499997就不會改變任何東西...

+0

感謝您的回覆 – collegian 2010-10-19 19:35:04