1. 程式人生 > >BigDecimal空指標異常——個人應用

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物件中的值以整數返回。