共計 1154 個字符,預計需要花費 3 分鐘才能閱讀完成。
BigDecimal 是 Java 中一個用于表示和操作任意精度的十進制數的類。它提供了精確的計算能力,避免了浮點數計算中的舍入誤差。
下面是 BigDecimal 的常用方法和用法:
-
創建 BigDecimal 對象:
- 使用整數或浮點數創建:
BigDecimal num1 = new BigDecimal("10"); BigDecimal num2 = new BigDecimal("3.14");
- 使用 BigInteger 創建:
BigInteger bigInteger = BigInteger.valueOf(1234); BigDecimal num3 = new BigDecimal(bigInteger);
- 使用長整型創建:
BigDecimal num4 = BigDecimal.valueOf(1000L);
- 使用整數或浮點數創建:
-
進行基本的算術運算:
BigDecimal result = num1.add(num2); // 加法 BigDecimal result = num1.subtract(num2); // 減法 BigDecimal result = num1.multiply(num2); // 乘法 BigDecimal result = num1.divide(num2); // 除法,除不盡時會拋出異常 BigDecimal result = num1.divide(num2, 2, RoundingMode.HALF_UP); // 設置保留小數位數和舍入模式
-
比較大小:
int compare = num1.compareTo(num2); // 返回 -1(小于)、0(等于)、1(大于) boolean equalTo = num1.equals(num2); // 判斷是否相等
-
設置精度和舍入模式:
BigDecimal result = num1.setScale(2, RoundingMode.HALF_UP); // 設置保留小數位數和舍入模式
-
轉換為其他類型:
int intValue = num1.intValue(); // 轉換為 int 類型 long longValue = num1.longValue(); // 轉換為 long 類型 double doubleValue = num1.doubleValue(); // 轉換為 double 類型
-
其他常用方法:
int precision = num1.precision(); // 返回有效位數 int scale = num1.scale(); // 返回小數位數 BigDecimal rounded = num1.round(MathContext.DECIMAL32); // 使用指定的 MathContext 進行舍入
需要注意的是,由于 BigDecimal 是不可變類,所有的計算操作都會返回新的 BigDecimal 對象。另外,對于除法運算可能會拋出異常,因此需要根據具體情況進行異常處理。
丸趣 TV 網 – 提供最優質的資源集合!
正文完
發表至: Java
2023-12-20