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 2022-08-09 17:22  爱文(Iven)  阅读(6054)  评论(0编辑  收藏  举报

导航