字符串被具有不同语言环境的 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.