1. 程式人生 > >Java Math、BigInteger、BigDecimal類

Java Math、BigInteger、BigDecimal類

Java Math、BigInteger、BigDecimal類

1. java.lang.Math

java.lang.Math 提供了一系列靜態方法用於科學計算;其方法的引數和返回值型別一般為double型。
- abs 絕對值
- acos,asin,atan,cos,sin,tan 三角函式
- sqrt 平方根
- pow(double a,doble b) a的b次冪
- log 自然對數
- exp e為底指數
- max(double a,double b)
- min(double a,double b)
- random() 返回0.0到1.0的隨機數
- long round(double a) double型資料a轉換為long型(四捨五入)
- toDegrees(double angrad) 弧度—>角度
- toRadians(double angdeg) 角度—>弧度

注:凡是數學相關的方法都在Math類中的靜態方法中找

2. BigInteger類

Integer類作為int的包裝類,能儲存的最大整型值為2^31−1,BigInteger類的數字範圍較Integer類的數字範圍要大得多,可以支援任意精度的整數

- 構造器

BigInteger(String val)
- 常用方法
* public BigInteger abs()
* public BigInteger add(BigInteger val)
* public BigInteger subtract(BigInteger val)
* public BigInteger multiply(BigInteger val)
* public BigInteger divide(BigInteger val)
* public BigInteger remainder(BigInteger val)
* public BigInteger pow(int exponent)
* public BigInteger[] divideAndRemainder(BigInteger val)

3. BigDecimal類

一般的Float類和Double類可以用來做科學計算或工程計算,但在商業計算中,要求數字精度比較高,故用到java.math.BigDecimal類。BigDecimal類支援任何精度的定點數。

  1. 構造器
    • public BigDecimal(double val)
    • public BigDecimal(String val)
  2. 常用方法
    • public BigDecimal add(BigDecimal augend)
    • public BigDecimal subtract(BigDecimal subtrahend)
    • public BigDecimal multiply(BigDecimal multiplicand)
    • public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

4. demo

public void testBigInteger(){

	BigInteger bi = new BigInteger("12433241123");
	BigDecimal bd = new BigDecimal("12435.351");
	BigDecimal bd2 = new BigDecimal("11");
	System.out.println(bi);
	//System.out.println(bd.divide(bd2));
	System.out.println(bd.divide(bd2,BigDecimal.ROUND_HALF_UP));
	System.out.println(bd.divide(bd2,15,BigDecimal.ROUND_HALF_UP));

}

在這裡插入圖片描述