BigDecimal空指標異常——個人應用
背景:
將資料庫統計的資料,封裝成了兩個BigDecimal,此時要將兩個BigDecimal進行運算。其中有一個沒有資料的話,會報null(不管null值在前在後)
先上解決:
我把資料庫的資料進行了個判空,嘻嘻嘻,COALESCE(值,0),如果是沒有資料的就返回0
嘗試(天真的我以為他會自己把null 給我轉成0(如果這樣的話為什麼還報空指標!),所以就在找判0的方法):
使用 b.compareTo(BigDecimal.ZERO)==0 來判空(b為接收到的返回值) X報錯
那反過來BigDecimal.ZERO.compareTo(b)==0 X報錯 天真
課外:
不過百度的過程中瞭解了
判斷BigDecimal是否等於0的方法
用equals比較的話,就是轉成了字串來比較,會出現 Bigdecimal b = new Bigdecimal("0") 和 Bigdecimal c = new Bigdecimal("0.0")==>返回就是false
推薦使用:b.compareTo(BigDecimal.ZERO)==0
BigDecimal 的運算
add(BigDecimal) BigDecimal物件中的值相加,然後返回這個物件。
subtract(BigDecimal) BigDecimal物件中的值相減,然後返回這個物件。
multiply(BigDecimal) BigDecimal物件中的值相乘,然後返回這個物件。
divide(BigDecimal) BigDecimal物件中的值相除,然後返回這個物件。
toString() 將BigDecimal物件的數值轉換成字串。
doubleValue() 將BigDecimal物件中的值以雙精度數返回。
floatValue() 將BigDecimal物件中的值以單精度數返回。
longValue() 將BigDecimal物件中的值以長整數返回。
intValue() 將BigDecimal物件中的值以整數返回。