代码如下:
Double d1 = 0.35;
Double d2 = 0.1;
System.out.println(d1+d2);
结果很不幸不是0.45,而是0.44999999999999996
如果对于精度没有限制,我们当突然可是四舍五入的去计算,但如果涉及到RMB的计算,我们就要谨慎了。
所以在java中,我们不能使用double类型来做浮点运算。
解决方案: 使用
BigDecimal b1 = new BigDecimal(Double.toString(d1));
BigDecimal b2 = new BigDecimal(Double.toString(d2));
System.out.println(b1.add(b2).doubleValue());
输出:0.45