*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...