BigInter類和Decimallei類

Dr丶云幕發表於2024-07-05

應用場景

  1. BigInteger適用儲存比較大的整型
  2. 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));
   }
}

相關文章