BigDecimal的精確運算

2021-10-07 14:29:15 字數 916 閱讀 9736

*float和double型別,執行二進位制浮點運算,數值範圍上精確的近似計算,沒有完全精確的結果,商業計算往往要求結果精確,這時候使bigdecimal。

*使用bigdecimal做處理,資料來源是double型別要轉化為double.tostring(),然後使用string型別的構造器來進行計算 。

1.使用folat或者double計算,會丟失精度

2.使用bigdecimal做處理,資料來源是double型別要轉化為double.tostring(),然後使用string型別的構造器來進行計算
bigdecimal a = new bigdecimal("2.4");

bigdecimal b = new bigdecimal("3.4");

bigdecimal c = new bigdecimal(2.4);//使用double構造器會出現丟失精度情況

bigdecimal d = new bigdecimal(3.4);//使用double構造器會出現丟失精度情況

BigDecimal精確計算及陷阱

bigdecimal通常在涉及到精確計算的時候會用到,下面是自己多次錯誤使用bigdecimal的總結。bigdecimal初始化小數時,盡量用字串形式,例如new bigdecimal 0.1 bigdecimal型別變數比較大小時用compareto方法,判斷變數值是否為0,與bigdecima...

關於BigDecimal 的不精確計算問題

關於bigdecimal 的不精確計算問題 public static void main string args 輸入結果為 504.549999999999982946974341757595539093017578125 實際結果應為 504.55 現在作了如下函式,可以解決一部分處理,但是測...

BigDecimal 簡單運算

一 bigdecimal 加減乘除 bigdecimal bigdecimal new bigdecimal 10000 加法 bigdecimal bigdecimal1 bigdecimal.add new bigdecimal 2000 system.out.println bigdecima...