可能重複:
Why can't decimal numbers be represented exactly in binary?舍入誤差在C++
語言C++ 我聲明數組和我保存號(類型雙)在它。然後我開始比較數組中每個兩個元素之間的差異。 例如
a[1] = 0.05
a[2] = 0.1
a[3] = 0.15
所以 當i執行以下
if(a[3] - a[2] == a[2] - a[1])
條件爲假!!
調試後,我發現,0.05保存在陣列中作爲 0.0499 ...... 993 和情況類似與0.10和0.15
我怎樣才能解決這個問題?
一個有用的閱讀:[每個計算機科學家應該知道什麼關於浮點運算](http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html) – eldarerathis 2011-05-09 14:51:52
Eleveny- bazillion重複。 – 2011-05-09 14:52:00
參見:http:// floating-point-gui。de/ – hammar 2011-05-09 14:52:29