BigDecimal 簡單運算

2021-09-26 23:01:26 字數 1412 閱讀 4082

一 ,bigdecimal 加減乘除 :

bigdecimal  bigdecimal =new bigdecimal("10000");

//加法

bigdecimal bigdecimal1 =bigdecimal.add(new bigdecimal("2000"));

system.out.println(bigdecimal1);

//減法

bigdecimal bigdecimal2 =bigdecimal.subtract(new bigdecimal("2000"));

system.out.println(bigdecimal2);

//乘法

bigdecimal bigdecimal3 =bigdecimal.multiply(new bigdecimal("5"));

system.out.println(bigdecimal3);

//除法

bigdecimal bigdecimal4 =bigdecimal.divide(new bigdecimal("5"));

system.out.println(bigdecimal4);

控制依次輸出 : 

12000

8000

50000

2000

二 ,bigdecimal 比較大小

bigdecimal可以通過compareto方法來進行比較。

返回的結果是int型別,-1表示小於,0是等於,1是大於。

bigdecimal a = new bigdecimal(3);

bigdecimal b = new bigdecimal(2);

if ( a.compareto(b) == 1 )

三 ,bigdecimal 小數處理

//小數處理  引數 第一位 除數 ,第二位 保留小數字 ,bigdecimal.round_down 直接刪除

bigdecimal bigdecimal5 = bigdecimal.divide(new

bigdecimal("3"),0,bigdecimal.round_down);

system.out.println(bigdecimal5);

// bigdecimal.round_up; 近位

// bigdecimal.round_half_up; 四捨五入(5則向上入)

// bigdecimal.round_half_down; 四捨五入(5則向下舍)

注意: bigdecimal使用方法自身不會改變,結果需要接收 !

BigDecimal除法運算報錯

今天在運用bigdecimal做除法運算的時候,錯誤如下 non terminating decimal expansion no exact representable decimal result 不是很明白為什麼會這個樣子,度娘告訴我是因為 bigdecimal 做除法運算,如果除的結果為無限...

BigDecimal的精確運算

float和double型別,執行二進位制浮點運算,數值範圍上精確的近似計算,沒有完全精確的結果,商業計算往往要求結果精確,這時候使bigdecimal。使用bigdecimal做處理,資料來源是double型別要轉化為double.tostring 然後使用string型別的構造器來進行計算 1....

浮點數比較 運算BigDecimal

目錄總結 原文 浮點數float和double進行運算處理的時候,是不精確的,很容易出問題 比如 浮點數是不精確的,一定不要用於比較!float f 0.1f double d 1.0 10 system.out.println f d 結果為false又比如 float d1 423432423f...