单纯的加减运算也是不行的。
public static void main(String[] args) throws Exception {
double[] array = new double[10];
for (int i = 1; i <= 10; i++) {
double d = Double.parseDouble("0.0" + (i < 10 ? "0" + i : i));
array[i - 1] = d;
}
double sum = 0;
for (double d : array) {
sum += d;
System.out.println(d + "\t" + sum);
}
}
0.001 0.001
0.002 0.003
0.003 0.006
0.004 0.01
0.005 0.015
0.006 0.020999999999999998
0.007 0.027999999999999997
0.008 0.036
0.009 0.045
0.01 0.055
用作金额时需要转bigdecimal。
虽然早就知道这么个事情,但是实际使用还是头一次... |