BigDecimal、
时间: 2025-02-10 21:59:52 浏览: 24
### BigDecimal Java 使用教程
#### 创建 `BigDecimal` 对象
创建 `BigDecimal` 的推荐方式是通过字符串构造函数,而不是使用双精度浮点数作为参数。因为后者可能导致不精确的结果[^1]。
```java
// 推荐做法
BigDecimal bigDecimalFromString = new BigDecimal("123.45");
// 不推荐的做法
BigDecimal bigDecimalFromDouble = new BigDecimal(123.45);
```
#### 进行基本运算操作
可以利用多种方法来进行加减乘除的操作。例如:
- 加法可以通过调用 `add()` 方法实现[^2]
```java
BigDecimal num1 = new BigDecimal("100.5");
BigDecimal num2 = new BigDecimal("50.25");
BigDecimal sumResult = num1.add(num2); // 结果为 150.75
```
- 减法则对应于 `subtract()`
```java
BigDecimal differenceResult = num1.subtract(num2);
```
- 乘法由 `multiply()` 完成
```java
BigDecimal productResult = num1.multiply(num2);
```
- 而对于除法,则有多个选项如 `divide()` 或者更安全地处理可能发生的异常情况下的 `divideToIntegralValue()`, `remainder()`.
```java
try {
BigDecimal divisionResult = num1.divide(num2, MathContext.DECIMAL64);
} catch (ArithmeticException e) {
System.err.println(e.getMessage());
}
```
#### 设置精度与舍入模式
当执行涉及四则运算的任务时,通常还需要指定如何控制数值的小数位以及采用何种舍入策略。这可通过设置 `MathContext` 来完成:
```java
MathContext mc = new MathContext(4,RoundingMode.HALF_UP);
BigDecimal roundedNumber = someBigDecimalObject.round(mc);
```
这里定义了一个具有四位有效数字并应用向上取整规则(`HALF_UP`)的上下文环境。
---
阅读全文
相关推荐
















