bigdecimal转化为string保留小数位数
时间: 2024-10-24 11:01:58 浏览: 28
在Java中,如果你有一个`BigDecimal`类型的数值,并想要将其转换成字符串并指定特定的小数位数,你可以使用`DecimalFormat`类或者`toPlainString()`方法配合`toString()`方法。
1. 使用`DecimalFormat`:
```java
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
BigDecimal bd = new BigDecimal("123.456789");
DecimalFormat df = new DecimalFormat("#.00");
String strWithTwoDecimals = df.format(bd);
System.out.println(strWithTwoDecimals); // 输出 "123.46"
}
}
```
在这个例子中,`#.00`是一个模式,其中`#`表示任意数字,`.00`指定了两位小数。
2. 直接使用`toPlainString()`结合`substring`:
```java
BigDecimal bd = new BigDecimal("123.456789");
int scale = 2; // 指定保留两位小数
String str = bd.toPlainString().substring(0, Math.min(bd.precision(), scale + 2));
System.out.println(str); // 输出 "123.46"
```
这里我们先获取`BigDecimal`的最大精度,然后取相应长度的字符串。
阅读全文