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類支援任何精度的定點數。
- 構造器
- public BigDecimal(double val)
- public BigDecimal(String val)
- 常用方法
- 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));
}