# 前言
BigDecimal 是 java.math 包中提供的一种可以用来进行精确运算的类型。所以,在支付、电商等业务中,BigDecimal 的使用非常频繁。而且其内部自带了很多方法,如加,减,乘,除等运算方法都是可以直接调用的。
除了需要用 BigDecimal 表示数字和进行数字运算以外,代码中还经常需要对于数字进行相等判断。
说到等值比较,咱们先看看《阿里巴巴Java开发手册》中的要求:
那么为什么会有这样的要求呢~ 其中的奥秘是什么呢~
请各位小伙伴听我娓娓道来…
# BigDecimal 做等值比较
public static void main(String[] args) {
BigDecimal bigDecimal1 = new BigDecimal(1);
BigDecimal bigDecimal2 = new BigDecimal(1);
if(bigDecimal1 == bigDecimal2){
//等值比较
}
}
相信聪明的小伙伴一眼就可以看出来上面的代码是有问题的,因为 BigDecimal 是对象,不能使用 == 来做等值判断。
如果我们使用 BigDecimal 的 equals 方法做等值比较是不是可以呢?
public static void main(String[] args) {
BigDecimal bigDecimal1 = new BigDecimal(1);
BigDecimal bigDecimal2 = new BigDecimal(1);
if(bigDecimal1.equals(bigDecimal2)){
//等值比较
}
}
这里我先卖个关子,咱们跑跑代码来看看能不能用 BigDecimal 的 equals 方法做等值比较
public static void main(String[] args) {
BigDecimal bi