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

Kotlin如何格式化十进制数使不足两位小数时末尾自动补零

解决方案

你当前使用的模式串中小数位用的是##,属于可选占位符,对应位没有数字时就不会显示,要实现小数位不足2位时自动补零,把小数位的占位符换成00即可。

修改后基础代码

val formatter = DecimalFormat("#,###,##0.00")
// 可选配置:强制千位分隔符为空格,避免不同区域配置默认分隔符不一致的问题
val formatSymbols = DecimalFormatSymbols()
formatSymbols.groupingSeparator = ' '
formatter.decimalFormatSymbols = formatSymbols
return formatter.format(value)

规则说明

  • 模式串中0为必填占位符:对应位置没有数字时自动补0
  • 模式串中#为可选占位符:对应位置没有数字时不显示内容

如果你需要整数不显示小数部分(匹配你给出的3434输出为3 434的预期),可以额外增加判断逻辑,代码如下:

val formatterWithDecimal = DecimalFormat("#,###,##0.00")
val formatterWithoutDecimal = DecimalFormat("#,###,##0")
val formatSymbols = DecimalFormatSymbols()
formatSymbols.groupingSeparator = ' '
formatterWithDecimal.decimalFormatSymbols = formatSymbols
formatterWithoutDecimal.decimalFormatSymbols = formatSymbols

return if (value % 1 == 0.0) {
    formatterWithoutDecimal.format(value)
} else {
    formatterWithDecimal.format(value)
}

输出验证

使用加判断的代码可以完全匹配你给出的所有预期效果:

  • 3434 -> 3 434
  • 3434.3 -> 3 434.30
  • 3434.34 -> 3 434.34

内容的提问来源于stack exchange,提问作者testivanivan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:36:03