我是靠谱客的博主 糊涂凉面,这篇文章主要介绍Bigdecimal 的 equal() 踩坑,现在分享给大家,希望可以做个参考。

        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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(109)

评论列表共有 0 条评论

立即
投稿
返回
顶部