我正在运行此代码,循环似乎没有停止在指定的条件.
for(double i=1.0; i!=2.0; i+=0.2){
System.out.println("The value of i :" +i);
}
Run Code Online (Sandbox Code Playgroud)
这是用Java表示双数的方式的问题吗?
这是一个相当普遍的问题:0.2不能完全用a表示double,所以2.0不等于十0.2加在一起的总和.您需要使用<而不是!=停止循环.
请注意,你的循环可以用于增量等于2的负幂,例如0.25:下面的循环工作正常,并按预期停止:
for(double i=1.0; i!=2.0; i+=0.25){
System.out.println("The value of i :" +i);
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为0.25可以完全用a表示double.这个小实验表明,在比较doubles的平等或不平等时,你需要非常谨慎.
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |