我是靠谱客的博主 糊涂凉面,最近开发中收集的这篇文章主要介绍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 的 equal() 踩坑所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部