Java常用api_ BigDecimal的基本運算
構造方法
BigDecimal bgInt = new BigDecimal(int i);
BigDecimal bgDouble = new BigDecimal(double d);//不建議會存在精度丟失問題,若必須建議轉String。
BigDecimal bgStr = new BigDecimal(String str);
加減乘除
注意:BigDecimal參數 進行運算時只能對BigDecimal 參數運行
BigDecimal a = new BigDecimal("2.3");
BigDecimal b = new BigDecimal("3.2");
加: System.out.println("a + b =" + a.add(b));
減: System.out.println("a - b =" + a.subtract(b));
乘: System.out.println("a * b =" + a.multiply(b));
除: System.out.println("a / b =" + a.divide(b));
除法可以傳三個參數,僅傳一個參數時若除不盡則會報錯
a.divide(BigDecimal a.b, int scale, int roundingMode)
第一參數表示除數,
第二個參數表示小數點後保留位數,
第三個參數表示舍入模式,只有在作除法運算或四捨五入時纔用到舍入模式,
第三個參數這裏我們可以用到java.math.RoundingMode 幾個參數。
RoundingMode.CEILING:取右邊最近的整數
RoundingMode.DOWN:去掉小數部分取整,也就是正數取左邊,負數取右邊,相當於向原點靠近的方向取整
RoundingMode.FLOOR:取左邊最近的正數
RoundingMode.HALF_DOWN:五舍六入,負數先取絕對值再五舍六入再負數
RoundingMode.HALF_UP:四捨五入,負數原理同上
RoundingMode.HALF_EVEN:這個比較繞,整數位若是奇數則四捨五入,若是偶數則五舍六入
System.out.println("a / b =" + a.divide(b,3,RoundingMode.HALF_UP));
控制檯打印結果,表示a/b保留三位小數,舍入方式爲四捨五入
a / b =0.719
取餘
BigDecimal a = new BigDecimal("5");
BigDecimal b = new BigDecimal("3");
BigDecimal[] bigs=a.divideAndRemainder(b);
System.out.println("商"+bigs[0]);//商
System.out.println("餘數"+bigs[1]);//餘數
//控制檯輸出結果
商1
餘數2
a.divideAndRemainder(b);方法接收另一個BigDecimal 對象作爲參數,該參數即爲除數,返回一個BigDecimal數組,返回數組中包含兩個元素,第一個元素爲兩數相除的商,第二個元素爲餘數。