问题情况:
double b = 0.02;double c = 0.05;System.out.println(c-b);
这时我们希望得到的是 0.03
但是输出结果 0.030000000000000002
解决方法:改用 BigDecimal
具体操作:
BigDecimal b2 = new BigDecimal(Double.toString(b));BigDecimal b3 = new BigDecimal(Double.toString(c));System.out.println(b3.subtract(b2).doubleValue());System.out.println(b2.add(b3).doubleValue());
输出结果当然是 0.03 和 0.07 了