Java代码中将bigdecimal保留两位小数
时间: 2024-09-11 19:18:19 浏览: 127
在Java中,如果你有一个`BigDecimal`类型的值,并想要将其格式化为只保留两位小数,你可以使用`DecimalFormat`类或者`MathContext`上下文。以下是两个示例:
1. 使用`DecimalFormat`:
```java
import java.text.DecimalFormat;
BigDecimal bd = new BigDecimal("123456789.1234567");
DecimalFormat df = new DecimalFormat("#.00");
String formattedBd = df.format(bd);
System.out.println(formattedBd); // 输出 "123456789.12"
```
2. 使用`MathContext`:
```java
import org.apache.commons.math3.stat.rational.Rational;
import org.apache.commons.math3.util.MathArrays;
BigDecimal bd = new BigDecimal("123456789.1234567");
MathContext mc = MathContext.DECIMAL128; // 设置保留128位精度,但默认舍入到最近整数
Rational rational = Rational.of(bd.unscaledValue(), bd.scale());
rational = rational.roundToScale(2); // 精确到两位小数
String formattedBd = rational.toString(); // 输出 "123456789.12"
```
阅读全文