我想要創建值的陣列的0.2 一個區間I中使用的代碼:截斷誤差
public class TrialCode {
public static void main(String[] args) {
float a = -1.0f, b = 0.2f;
for (int i = 0; i <10; i++) {
a = a + b;
System.out.println(a);
}
}
}
現在,我得到的輸出是:
-0.8
-0.6
-0.40000004
-0.20000003
-2.9802322E-8
0.19999997
0.39999998
0.59999996
0.79999995
0.99999994
,而我想要的輸出是
-0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8, 1.0
我該怎麼辦?
相關/可能DUP:http://stackoverflow.com/questions/327544/strange-floating-point-behaviour-in-a-java-program – Krease