【问题标题】:DecimalFormat using Turkish FormatDecimalFormat 使用土耳其语格式
【发布时间】:2014-11-26 14:39:51
【问题描述】:

我的格式是

DecimalFormat decimalformat = new DecimalFormat("0.00##");

但我的用户是土耳其人、俄罗斯人等。他们在当地有所不同。他们使用我的应用程序。给错误看起来像这样 对于土耳其语,“10,00”

我的错误;

java.lang.NumberFormatException:Invalid Double:"10,00"

【问题讨论】:

    标签: android number-formatting


    【解决方案1】:

    没有足够的信息来解析输入,但我建议你这样做:

    static String parseInput(String input) throws ParseException {
    
        DecimalFormat dFormat = new DecimalFormat("0.00##");
        Number number         = dFormat.parse(input);
        // double numAsDouble = number.doubleValue();
    
        return number.toString();
    }
    

    不是很好,但您也可以尝试通过替换 ',' 来解析输入:

    static String parseInputByReplace(String input) throws ParseException {
        DecimalFormat dFormat = new DecimalFormat("0.00##");
        double number = Double.parseDouble(input.replace(',', '.'));
        return dFormat.format(number);
    }
    

    【讨论】:

      【解决方案2】:

      您应该使用用户的文化进行解析。 decimal.Parse 会这样做。如果您使用自己的文化,则意味着您明确“告诉”解析器仅使用该格式。

      【讨论】:

        猜你喜欢
        • 2013-08-07
        • 2014-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-09
        • 2011-03-25
        • 2015-01-07
        • 1970-01-01
        相关资源
        最近更新 更多