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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM