场景

接口中的金额,使用的是 string 类型。

但是需要判断一下金额是否为0,需要一些简单的特判。

错误姿势:equals

BigDecimal amt = new BigDecimal(actAmt);
if(BigDecimal.ZERO.equals(amt)) {
    //.xxxx
}

但是这个其实有一定的限制,如果数据库的金额为 0.00 之类的,其实 equals 比较并不相等。

所以推荐使用 compareTo

正确姿势:compareTo

BigDecimal amt = new BigDecimal(actAmt);
if(BigDecimal.ZERO.compareTo(amt) == 0) {
    //.xxxx
}

这个时候比较的就是值大小,无论存储的是 0 还是 0.00。都是符合的。