作者coil (Q_Q)
看板java
標題[問題] 一個奇怪的問題
時間Thu Apr 10 21:55:28 2008
寫了一個簡短的迴圈 如下:
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
1F:推 wuboy:0.8 float 跟double都是ieee 754 近似值 沒辦法剛好 04/10 22:04
2F:推 wuboy:如果知道小數點後位數的 最好先乘以位數用整數運算再除回 04/10 22:06