如何使用 DecimalFormat 设置数字的千分位分隔符及小数点掩码?

2026-04-29 08:550阅读0评论SEO资讯
  • 内容介绍
  • 相关推荐

本文共计742个文字,预计阅读时间需要3分钟。

如何使用 DecimalFormat 设置数字的千分位分隔符及小数点掩码?

直接生效的方式是使用带有占位符的+pattern+字符串构造,例如:

setGroupingUsed(true) 和 pattern 里的 , 不是互斥关系

如果你用无参构造器创建 DecimalFormat,再调用 setGroupingUsed(true),它只会启用默认分组(如英文 locale 下用逗号),但不会自动加小数位控制或指定分隔符字符。真正决定“是否分组”“用什么符号分组”“小数点后几位”的,还是 pattern 字符串本身。所以更稳妥的做法是:直接写完整 pattern,避免依赖 locale 或后续 setter 调用顺序。

  • new DecimalFormat("#,###") → 整数部分分组,无小数
  • new DecimalFormat("0,000.00") → 强制整数至少 4 位(不足补零),小数固定两位
  • new DecimalFormat("#,##0.##") → 整数部分分组,小数最多两位(末尾零不显示)

想换千分位符号?别改 pattern,改 DecimalFormatSymbols

pattern 里的 , 只是个占位指令,实际渲染成什么字符(逗号、点、空格、甚至竖线),由 DecimalFormatSymbols 控制。

阅读全文

本文共计742个文字,预计阅读时间需要3分钟。

如何使用 DecimalFormat 设置数字的千分位分隔符及小数点掩码?

直接生效的方式是使用带有占位符的+pattern+字符串构造,例如:

setGroupingUsed(true) 和 pattern 里的 , 不是互斥关系

如果你用无参构造器创建 DecimalFormat,再调用 setGroupingUsed(true),它只会启用默认分组(如英文 locale 下用逗号),但不会自动加小数位控制或指定分隔符字符。真正决定“是否分组”“用什么符号分组”“小数点后几位”的,还是 pattern 字符串本身。所以更稳妥的做法是:直接写完整 pattern,避免依赖 locale 或后续 setter 调用顺序。

  • new DecimalFormat("#,###") → 整数部分分组,无小数
  • new DecimalFormat("0,000.00") → 强制整数至少 4 位(不足补零),小数固定两位
  • new DecimalFormat("#,##0.##") → 整数部分分组,小数最多两位(末尾零不显示)

想换千分位符号?别改 pattern,改 DecimalFormatSymbols

pattern 里的 , 只是个占位指令,实际渲染成什么字符(逗号、点、空格、甚至竖线),由 DecimalFormatSymbols 控制。

阅读全文