什麼是BigDecimal?
在java 裡面,int 的最大值是:2147483647,現在如果想用比這個數大怎麼辦?換句話說,就是數值較大,這時候就用到了BigDecimal 。
不要用equals方法來比較BigDecimal物件,因為它的equals方法會比較scale,如果scale不一樣,它會返回false;
例如:
應該使用compareTo()和signum()方法
補充:
BigInteger 存放的是 大的整數
BigDecimal 存放的是 大的小數
截自:Java中BigDecimal的加減乘除、比較大小與使用注意事項
如果要精確計算,一定得把數值轉型成String型別,否則得到的結果會是有問題的。簡單來說,若要使用BigDecimal做加法計算必須有以下步驟:
- 需要先將兩個浮點數(double)轉為String,並分別宣告為BigDecimal
- 在其中一個浮點數使用add方法,傳入另一個浮點數作為參數
- 作為運算結果的參數(答案)也須宣告為BigDecimal
- 最後把運算的結果(BigDecimal)再轉換為浮點數
加為add、減為sub、乘為multiply、除法為divide
截自:[轉載] [Java] BigDecimal的四則運算