常用類庫-----15.10大數字處理類

大數字

當一個數字非常大的時候,是無法使用基本類型接收的,在早期開發中如果碰到大數字的時候往往會使用String類進行接收,之後採用拆分的方式進行計算。但是這一系列的操作過於繁瑣,所以爲了解決這樣的難題在java.math包中提供了大數字的操作類:BigInteger(整數)、BigDecimal(浮點數),這兩個類都是Number子類
在這裏插入圖片描述

BigInteger類的常用方法

在這裏插入圖片描述

BigDecimal常用方法

在這裏插入圖片描述
範例:使用BigInteger實現四則運算

import java.math.BigInteger;

public class JavaAPIDemo353 {
       public static void main(String[] args) {
		BigInteger bigA=new BigInteger("156181851741");
		BigInteger bigB=new BigInteger("15591446951");
		System.out.println("加法操作:"+bigA.add(bigB));
		System.out.println("減法操作:"+bigA.subtract(bigB));
		System.out.println("乘法操作:"+bigA.multiply(bigB));
		System.out.println("除法操作:"+bigA.divide(bigB));
		System.out.println("最大值:"+bigA.max(bigB));
		System.out.println("最小值:"+bigA.min(bigB));
		BigInteger [] result=bigA.divideAndRemainder(bigB);//商和餘構成一個數組
		System.out.println("商:"+result[0]+"餘:"+result[1]);
	}
}

執行結果

加法操作:171773298692
減法操作:140590404790
乘法操作:2435101056128748491691
除法操作:10
最大值:156181851741
最小值:15591446951
商:10餘:267382231

實例化BigInteger對象時的數據類型爲String型,這樣可以不受數據類型長度影響。

BigDecimal和BigInteger類似,但是BigDecimal類中提供一個進位的除法操作。
範例:使用BigDecimal實現四捨五入

import java.math.BigDecimal;
import java.math.RoundingMode;

public class MathUtil {
      private MathUtil () {}
      /**
       * 
       * @param num要進行四捨五入的數字
       * @param scale要保留的位數
       * @return
       */
      public static double roung(double num,int scale) {
    	 //數字除以1.0還是數字本身,divide()方法保留指定位數的小數,並設置進位模式爲向上進位HALF_UP。doubleValue()類型轉換,轉換爲double型
		return new BigDecimal(num).divide(new BigDecimal(1.0), scale, RoundingMode.HALF_UP).doubleValue();
    	  
      }
      
}

public class JavaAPIDemo354 {
       public static void main(String[] args) {
		System.out.println(MathUtil.roung(19.6352, 2));
	}
}


執行結果

19.64
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章