應用場景
- BigInteger適用儲存比較大的整型
- BigDecimal適用精度更高的浮點型(小數)
BigInteger
當程式設計中需要處理很大的整數,long不夠用時可以使用BigInteger的類解決。
需要對BigInteger進行加減乘除的時候,需要使用對應的方法。
先建立一個需要操作的BigInteger然後進行操作
public class BigInteger_ {
public static void main(String[] args) {
// long l = 4545632135555555555555555555555;
BigInteger bigInteger = new BigInteger("4545632135555555555555555555555");
System.out.println("原數值=" + bigInteger);
BigInteger bigInteger1 = new BigInteger("5");
BigInteger bigInteger2 = bigInteger.add(bigInteger1); // 加法
System.out.println("原數值+5=" + bigInteger2);
BigInteger bigInteger3 = bigInteger.subtract(bigInteger1); // 減法
System.out.println("原數值-5=" + bigInteger3);
BigInteger bigInteger4 = bigInteger.multiply(bigInteger1);
System.out.println("原數值/5=" +bigInteger4);
BigInteger bigInteger5 = bigInteger.divide(bigInteger1);
System.out.println("原數值*5=" +bigInteger5);
}
}
BigDecimal
當程式需要一個精度很高(double不夠用)的數時使用BigDecimal
對BigDecimal進行加減乘除要使用對應的方法。
建立一個需要操作的BigDecimal後呼叫對應的方法即可。
其中除法除不盡時會丟擲異常
public class BigDecimal_ {
public static void main(String[] args) {
BigDecimal bigDecimal = new BigDecimal("1949.10101010010101010100010111110");
System.out.println(bigDecimal);
BigDecimal bigDecimal1 = new BigDecimal("1.001");
System.out.println(bigDecimal.add(bigDecimal1));
System.out.println(bigDecimal.subtract(bigDecimal1));
System.out.println(bigDecimal.multiply(bigDecimal1));
// System.out.println(bigDecimal.divide(bigDecimal1)); // 除不盡的數會丟擲異常
//除不盡小數會保留分子的精度
System.out.println(bigDecimal.divide(bigDecimal1,BigDecimal.ROUND_CEILING));
}
}