我知道如何使用 for 循环递增 1,例如:
for(int i = 0; i < 9; i++){
System.out.println(i);
}
会打印出 0 到 8,但我不知道如何制作一个以十进制数递增的 for 循环,例如 0.1。就我而言,我试图纠正一个从 -1.00 到 1.00 递增 0.1 的 for 循环。任何帮助将不胜感激。
首先,我们考虑显而易见的方法:
for(double i = -1; i <= 1; i += 0.1){
System.out.println(i);
}
存在浮点问题,特别是因为您使用 0.1 作为增量。如果你运行代码,这是输出:
-1.0
-0.9
-0.8
-0.7000000000000001
-0.6000000000000001
-0.5000000000000001
-0.40000000000000013
-0.30000000000000016
-0.20000000000000015
-0.10000000000000014
-1.3877787807814457E-16
0.09999999999999987
0.19999999999999987
0.2999999999999999
0.3999999999999999
0.4999999999999999
0.5999999999999999
0.6999999999999998
0.7999999999999998
0.8999999999999998
0.9999999999999998
使用 to 的映射int
会double
产生更好的结果:
for(int i = -10; i <= 10; i++){
System.out.println(i / 10.0);
}
输出:
-1.0
-0.9
-0.8
-0.7
-0.6
-0.5
-0.4
-0.3
-0.2
-0.1
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
你可以这样尝试:-
for(double i = 0; i < 10.0; i += 0.1)
或者可能是这样的,因为你应该避免在 for 循环中重复:
for (int n = 0; n <= 9; n++) {
double i = 0.1 * n;
// ...
}
为防止浮点算术错误,请使用 int 直到需要显示它:
for (int i = -10; i <= 10; ++i)
{
System.out.println((double)i/10);
}
您可以使用它来迭代 -1.0 到 1.0
for(int i=-100; i<=100; i+=10) {
double x = i/100.0;
System.out.println(x);
}
这输出:
-1.0
-0.9
-0.8
-0.7
-0.6
-0.5
-0.4
-0.3
-0.2
-0.1
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0