作者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