BigDecimal
BigDecimal bigDecimal1= new BigDecimal(0.0);
BigDecimal bigDecimal2= new BigDecimal(1.001);
BigDecimal bigDecimal3= new BigDecimal("0.0");
BigDecimal bigDecimal4= new BigDecimal("1.001");
for (int i = 0; i <5; i++) {
bigDecimal1 = bigDecimal1.add(bigDecimal2);
System.out.println(bigDecimal1);
}
System.out.println("---------------------------");
for (int i = 0; i <5; i++) {
bigDecimal3 = bigDecimal3.add(bigDecimal4);
System.out.println(bigDecimal3);
}
输出结果:
1.000999999999999889865875957184471189975738525390625
2.001999999999999779731751914368942379951477050781250
3.002999999999999669597627871553413569927215576171875
4.003999999999999559463503828737884759902954101562500
5.004999999999999449329379785922355949878692626953125
---------------------------
1.001
2.002
3.003
4.004
5.005
可以明显看出
bigDecimal1 不正常 <pre name="code" class="java">bigDecimal3 正常
就是当我们相加的时候 最好new BigDecimal(字符串)