【Java】什麼是BigDecimal?(轉載)


什麼是BigDecimal?


在java 裡面,int 的最大值是:2147483647,現在如果想用比這個數大怎麼辦?換句話說,就是數值較大,這時候就用到了BigDecimal 。

不要用equals方法來比較BigDecimal物件,因為它的equals方法會比較scale,如果scale不一樣,它會返回false;

例如:





應該使用compareTo()和signum()方法





補充:
BigInteger 存放的是   大的整數
BigDecimal 存放的是  大的小數

截自:Java中BigDecimal的加減乘除、比較大小與使用注意事項










如果要精確計算,一定得把數值轉型成String型別,否則得到的結果會是有問題的。簡單來說,若要使用BigDecimal做加法計算必須有以下步驟:

  1. 需要先將兩個浮點數(double)轉為String,並分別宣告為BigDecimal
  2. 在其中一個浮點數使用add方法,傳入另一個浮點數作為參數
  3. 作為運算結果的參數(答案)也須宣告為BigDecimal
  4. 最後把運算的結果(BigDecimal)再轉換為浮點數


加為add、減為sub、乘為multiply、除法為divide





























截自:[轉載] [Java] BigDecimal的四則運算