【问题标题】:String getting parsed incorrectly by DecimalFormat with different locales使用不同语言环境的 DecimalFormat 错误地解析字符串
【发布时间】:2019-10-14 11:27:23
【问题描述】:

代码:-

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

输出:0.5

代码:-

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

输出:5

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

【问题讨论】:

    标签: java locale decimalformat


    【解决方案1】:

    您需要为给定的语言环境使用正确的小数分隔符,因此因为它是西班牙语的逗号,所以您需要有

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

    当然,如果“0.5”是正确的格式,那么您需要将语言环境更改为与格式匹配的语言

    【讨论】:

      【解决方案2】:

      您在语言环境中输入“es”,因此您将其解析为西班牙方式来解析字符串。在西班牙语中,小数点分隔符是逗号。所以 0.5 变成 5。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-15
        • 2016-01-29
        • 2012-04-14
        • 2015-01-21
        • 2011-09-25
        相关资源
        最近更新 更多