6、比较Bigdecimal类型是否相等的方法

千里之行,始于足下

 


正文

回到顶部

一、Bigdecimal.equals()详解:

Bigdecimal的equals方法不仅仅比较值的大小是否相等,首先比较的是scale(scale是bigdecimal的保留小数点位数),也就是说,不但值得大小要相等,保留位数也要相等,equals才能返回true。

 

回到顶部

二、采用compareTo()方法比较Bigdecimal类型是否相等:

用b.compareTo(BigDecimal.ZERO)==0,可以比较是否等于0,返回true则等于0,返回false,则不等于0

 

回到顶部

三、代码demo:

复制代码
import java.math.BigDecimal;

public class BigDecimalDemo {
    // 注:
    // Bigdecimal的equals方法不仅仅比较值的大小是否相等,
    // 首先比较的是scale(scale是bigdecimal的保留小数点位数),
    // 也就是说,不但值的大小要相等,保留位数也要相等,equals才能返回true。
    /**
     * demo01()
     * @return
     * ---》bigDecimal = 0
     * ---》true
     * */
    public static void demo01 () {
        BigDecimal bigDecimal = new BigDecimal(0.0);
        BigDecimal bigDecimal1 = new BigDecimal(0);
        if (bigDecimal.equals(bigDecimal1)) {
            System.out.println("bigDecimal = " + bigDecimal);
            System.out.println("true");
        } else {
            System.out.println("bigDecimal = " + bigDecimal);
            System.out.println("false");
        }
    }

    /**
     * demo02()
     * @return
     * ---》bigDecimal = 0.0000
     * ---》false
     * */
    public static void demo02 () {
        BigDecimal bigDecimal = new BigDecimal(0.0).setScale(4, BigDecimal.ROUND_HALF_UP);
        BigDecimal bigDecimal1 = new BigDecimal(0).setScale(3, BigDecimal.ROUND_HALF_UP);
        if (bigDecimal.equals(bigDecimal1)) {
            System.out.println("bigDecimal = " + bigDecimal);
            System.out.println("true");
        } else {
            System.out.println("bigDecimal = " + bigDecimal);
            System.out.println("false");
        }
    }
    /**
     * demo03()
     * @return
     * ---》bigDecimal = 0.0000
     * ---》true
     *
     * compareTo()方法
     * 返回值
     * 1、如果指定的数与参数相等返回 0。
     * 2、如果指定的数小于参数返回 -1。
     * 3、如果指定的数大于参数返回 1。
     * */
    public static void demo03 () {
        BigDecimal bigDecimal = new BigDecimal(0.0).setScale(4, BigDecimal.ROUND_HALF_UP);
        BigDecimal bigDecimal1 = new BigDecimal(0).setScale(3, BigDecimal.ROUND_HALF_UP);
        //比较是否等于0: b.compareTo(BigDecimal.ZERO)==0
        if (bigDecimal.compareTo(bigDecimal1) == 0) {
            System.out.println("bigDecimal = " + bigDecimal);
            System.out.println("true");
        } else {
            System.out.println("bigDecimal = " + bigDecimal);
            System.out.println("false");
        }
    }

    public static void main(String[] args) {
        demo01();
        demo02();
        demo03();
    }
}
复制代码

 

 

 

 

 

posted on   爱文(Iven)  阅读(6230)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示

目录导航