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