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
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
留言