BigDecimal如何比较是否相等

例子:

BigDecimal a = new BigDecimal("2.00");

BigDecmial b = new BigDecimal(2);

System.out.println(a.equals(b));

输出结果是:false

原因是:BigDecimal比较时,不仅比较值,而且还比较精度???

解决方法:

BigDecimal a = new BigDecimal("2.00").setScale(2,BigDecimal.ROUND_HALF_DOWN);

BigDecmial b = new BigDecimal(2).setScale(2,BigDecimal.ROUND_HALF_DOWN);

System.out.println(a.equals(b));

结果就是:true

扫描二维码关注公众号,回复: 338936 查看本文章

关于BigDecimal.ROUND_HALF_UP与ROUND_HALF_DOWN

ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2
ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1

猜你喜欢

转载自hq82001.iteye.com/blog/2341875