java中的double

代码如下:

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

posted on 2014-05-15 09:10  依米艳  阅读(1099)  评论(0编辑  收藏  举报

导航