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

Kotlin中DecimalFormat区域设置问题:小数显示逗号替代点

解决DecimalFormat手机端显示逗号替代小数点的问题

你遇到的问题确实是**区域设置(Locale)**导致的:默认情况下DecimalFormat会采用当前设备系统的区域规则,手机端系统如果设置了使用逗号作为小数点分隔符的区域(如欧洲部分地区),就会输出15,4;而电脑虚拟机大概率默认使用英文Locale,所以显示正常的15.4。

以下是两种可行的解决方法:

方法1:指定固定Locale创建格式化器

直接在初始化DecimalFormat时传入使用点作为小数点的Locale(比如Locale.US或中立的Locale.ROOT),强制统一格式:

val formatter = DecimalFormat("##0.######", DecimalFormatSymbols(Locale.US))
return formatter.format(value)

或者使用中立Locale:

val formatter = DecimalFormat("##0.######", DecimalFormatSymbols(Locale.ROOT))
return formatter.format(value)

方法2:手动设置小数点分隔符

如果需要保留其他区域规则但仅替换小数点符号,可以手动修改DecimalFormatSymbols的分隔符:

val symbols = DecimalFormatSymbols()
symbols.decimalSeparator = '.' // 强制设置为点
val formatter = DecimalFormat("##0.######", symbols)
return formatter.format(value)

内容的提问来源于stack exchange,提问作者NhatNS - Birthday Nguyen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:25:55