[問題] 一個奇怪的問題

看板java作者 (Q_Q)時間18年前 (2008/04/10 21:55), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串1/2 (看更多)
寫了一個簡短的迴圈 如下: for(double j=0.0;j<1;j+=0.1) { System.out.println("j="+j); } 可是印出來的結果卻很奇怪 如下: j=0.0 j=0.1 j=0.2 j=0.3000000000000004 j=0.4 j=0.5 j=0.6 j=0.7 j=0.7999999999999999 j=0.8999999999999999 j=0.9999999999999999 為什麼會是這樣的結果? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.105.192.130

04/10 22:04, , 1F
0.8 float 跟double都是ieee 754 近似值 沒辦法剛好
04/10 22:04, 1F

04/10 22:06, , 2F
如果知道小數點後位數的 最好先乘以位數用整數運算再除回
04/10 22:06, 2F
文章代碼(AID): #17_XnHyW (java)
討論串 (同標題文章)
文章代碼(AID): #17_XnHyW (java)