float小數點精準度的問題

在Java和C#的世界裡面,float小數點精準度是有問題的,我一直以為我不會碰到這個問題,但是今天這個炸彈爆炸了 XD

1.235 > 1.230 + 0.005 ?

這個結果有念過小學都知道false,但是無論是Java或.NET當這幾個數字的資料型態是float的時候就會出錯

ex.

float a = 1.235f;
float b = 1.230f;
float c = 0.005f;
if(a > b + c) .... 會是true

因此我們必須調高精準度.. 把資料型態轉變成double 就可以了...
讓我想不到的是.. float到小數點第三位就會出錯了 XD

留言

這個網誌中的熱門文章

使用Mac的Preview來合併兩張圖片

Mac OS X 10.6.3 上的黑體-繁

關於 Kernel-Power 的 Error on Windows 7