使用不同区域设置的 DecimalFormat 无法正确解析字符串

代码:-

((DecimalFormat)DecimalFormat.getInstance(new Locale("en","US"))).parse("0.5")

输出:0.5

代码 :-

((DecimalFormat)DecimalFormat.getInstance(new Locale("es","CN"))).parse("0.5")

输出:5

我正在使用DecimalFormat将字符串格式化为数字,但它在某种程度上没有给出不同区域设置的预期结果。请帮助我为所有语言环境获得相同的输出。


吃鸡游戏
浏览 85回答 2
2回答

慕田峪4524236

您需要为给定的区域设置使用正确的小数分隔符,因此由于西班牙语是逗号,因此您需要有 ((DecimalFormat)DecimalFormat.getInstance(new Locale("es","CN"))).parse("0,5")但当然,如果“0.5”是正确的格式,那么您需要将您的区域设置更改为与格式匹配的区域设置

12345678_0001

您在区域设置中输入“es”,因此您将其解析为解析字符串的西班牙语方式。在西班牙语中,小数点分隔符是逗号。所以 0.5 就变成了 5。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java