一、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();
}
}