1. 程式人生 > >BigDecimal不等於0

BigDecimal不等於0

b.compareTo(BigDecimal.ZERO)==0,可以比較是否等於0,返回true則等於0,返回false,則不等於0;

b.equals(BigDecimal.ZER);

用equals方法和BigDecimal.ZERO進行比較,是有問題的

Bigdecimal的equals方法不僅僅比較值的大小是否相等,首先比較的是scale(scale是bigdecimal的保留小數點位數,比如 new Bigdecimal("1.001"),scale為3),也就是說,不但值得大小要相等,保留位數也要相等,equals才能返回true。

即:

Bigdecimal b = newBigdecimal("0") 和 Bigdecimal c = new Bigdecimal("0.0"),用equals比較,返回就是false。

Bigdecimal.ZERO的scale為0。