BigDecimal a = new BigDecimal("0.0");
BigDecimal b = new BigDecimal("0.00");
BigDecimal c = BigDecimal.ZERO;
BigDecimal d = new BigDecimal(0.0F);
BigDecimal f = new BigDecimal(0.00F);
BigDecimal g = BigDecimal.valueOf(0.0F);
BigDecimal h = BigDecimal.valueOf(0.00F);
System.out.println(a.equals(c)); //false
System.out.println(b.equals(c)); //false
System.out.println(a.equals(b)); //false
System.out.println(d.equals(c)); //true
System.out.println(b.equals(f)); //false
System.out.println(a.equals(g)); //true
System.out.println(d.equals(g)); //false
System.out.println(g.equals(h)); //true
Bigdecimal 的 equal() 方法会先比较 这个数的小数保留位数(scale),如果 scale 相同才会继续比较值是否相等。
- 比如 BigDecimal b = new BigDecimal(“0.00”); scale 为 2
- 但要注意 BigDecimal f = new BigDecimal(0.00F); scale 为 0
- .valueOf(0.0F); 和 .valueOf(0.00F); scale 为 1
最后
以上就是糊涂凉面最近收集整理的关于Bigdecimal 的 equal() 踩坑的全部内容,更多相关Bigdecimal内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复