为什么java中不能用浮点数控制for循环?
double k;
for(k=0.1;k<2.0;k+=0.1) {
System.out.println(k);
}
结果:
0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
1.0999999999999999
1.2
1.3
1.4000000000000001
1.5000000000000002
1.6000000000000003
1.7000000000000004
1.8000000000000005
1.9000000000000006
浮点数据在计算机中不是精确的数据,因此,有可能不连续,或是运算出BUG
因此,不建议用浮点数做循环变量!