You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何格式化BigDecimal以保留小数点后3位

BigDecimal 格式化保留三位小数的实现方法

下面是几种常用的实现方式,可根据场景选择:

1. 使用 BigDecimal 自带的 setScale 方法

这是处理BigDecimal精度最原生的方式,直接通过指定保留位数和舍入规则完成:

BigDecimal num = new BigDecimal("14.2345");
// 保留3位小数,采用四舍五入规则
BigDecimal result = num.setScale(3, RoundingMode.HALF_UP);
System.out.println(result); // 输出 14.235

常用舍入模式说明:

  • RoundingMode.HALF_UP:四舍五入(最常用)
  • RoundingMode.DOWN:直接截断末尾多余小数
  • RoundingMode.UP:无论末尾数值大小,直接向上进位

2. 使用 DecimalFormat 格式化输出字符串

如果需要将结果转为指定格式的字符串,推荐用DecimalFormat:

BigDecimal num = new BigDecimal("6.65346");
DecimalFormat df = new DecimalFormat("#.###");
// 可选:指定舍入模式,默认是HALF_UP
df.setRoundingMode(RoundingMode.DOWN);
String formattedStr = df.format(num);
System.out.println(formattedStr); // 输出 6.653

如果需要强制显示前导0(比如0.1234要输出0.123而非.123),可以把格式改为0.000。

3. 使用 String.format 快速格式化

适合简单场景,但注意:此方法会将BigDecimal转为double,超大数值可能丢失精度,高精度场景慎用:

BigDecimal num = new BigDecimal("2.567");
String formattedStr = String.format("%.3f", num);
System.out.println(formattedStr); // 输出 2.567

内容的提问来源于stack exchange,提问作者Андрей Андрей

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 09:15:59