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
相关产品推荐
相关产品推荐

