字符串被具有不同语言环境的 DecimalFormat 错误解析
String getting parsed incorrectly by DecimalFormat with different locales
代码:-
((DecimalFormat)DecimalFormat.getInstance(new Locale("en","US"))).parse("0.5")
输出:0.5
代码:-
((DecimalFormat)DecimalFormat.getInstance(new Locale("es","CN"))).parse("0.5")
输出:5
我正在使用 DecimalFormat
将字符串格式化为数字,但它在某种程度上没有给出不同语言环境的预期结果。
请帮助我获得所有语言环境的相同输出。
您需要为给定的语言环境使用正确的小数点分隔符,因为它是西班牙语的逗号,所以您需要
((DecimalFormat)DecimalFormat.getInstance(new Locale("es","CN"))).parse("0,5")
当然,如果“0.5”是正确的格式,那么您需要将区域设置更改为与格式匹配的区域设置
您在区域设置中输入 "es",因此您将其解析为西班牙文解析字符串的方式。在西班牙语中,小数点分隔符是逗号。所以 0.5 变成 5.
代码:-
((DecimalFormat)DecimalFormat.getInstance(new Locale("en","US"))).parse("0.5")
输出:0.5
代码:-
((DecimalFormat)DecimalFormat.getInstance(new Locale("es","CN"))).parse("0.5")
输出:5
我正在使用 DecimalFormat
将字符串格式化为数字,但它在某种程度上没有给出不同语言环境的预期结果。
请帮助我获得所有语言环境的相同输出。
您需要为给定的语言环境使用正确的小数点分隔符,因为它是西班牙语的逗号,所以您需要
((DecimalFormat)DecimalFormat.getInstance(new Locale("es","CN"))).parse("0,5")
当然,如果“0.5”是正确的格式,那么您需要将区域设置更改为与格式匹配的区域设置
您在区域设置中输入 "es",因此您将其解析为西班牙文解析字符串的方式。在西班牙语中,小数点分隔符是逗号。所以 0.5 变成 5.