標籤:
java.math包中提供了兩個大數字操作類:BigInteger(大整數操作類) BigDecimal(大小數操作類).
BigInteger類構造方法:public BigInteger(String val)
常用方法:public BigInteger add(BigInteger val)
public BigInteger subtract(BigInteger val)
public BigInteger multiply(BigInteger val)
public BigInteger divide(BigInteger val)
public BigInteger[] divideAndRemainder(BigInteger val):第一個數是商第二個數為餘數
public BigInteger pow(int exponent)返回其值為 (thisexponent) 的 BigInteger。注意,exponent 是一個整數而不是 BigInteger。
以上代碼在實際運用中用途並不大,在工作中如果遇到數學問題記得找第三方的開發包。
基本方法和操作和BigInteger相同,但BigDecimal擴充了一個非常重要的方法:
Math類中的round()方法進行四捨五入操作過程中採用的是將小數點全部省略的做法,但這種做法在實際用途中並不可取。所以Math.roucnd()是一個沒什麼實際用途的方法,這時候只能利用BigDecimal類完成。
BigDecimal中提供了一個除法操作:public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
divisor:被除數
scale:保留的小數位元
roundingMode:進位元模式
(public static final int ROUND_HALF_UP
public static final int ROUND_HALF_DOWN
)
class MyMath{ public static double round(double num,int scale){ BigDecimal big=new BigDecimal(num); BigDecimal res=big.divide(new BigDecimal(1), scale, BigDecimal.ROUND_HALF_UP);//四捨五入所以括弧中使用new BigDecimal(1) return res.doubleValue(); }}public class BigDecimalDemo { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(MyMath.round(178.1436534, 6)); System.out.println(MyMath.round(178.1436534, 3)); System.out.println(MyMath.round(178.1436534, 0)); }}
View Code
java學習筆記——大資料操作類