当locale更改为indonesia时,DecimalFormat无法正常工作

时间:2018-01-03 09:24:33

标签: android localization decimalformat

我正在开发一个支持不同语言的应用程序。我使用DecimalFormat类来格式化双值。以下方法适用于除印度尼西亚以外的所有语言。我感谢任何帮助。

 public static String formatNumberWithCommaSeparated(Double number){

    DecimalFormat formatter = new DecimalFormat("#,###.00");
    String FormattedString = formatter.format(number);
    return FormattedString;
}

结果

  

formatNumberWithCommaSeparated(125.0);

     

- 英文,马来文,泰文,中文=> 125.00

     

-In Indonesia Language => 125,00

2 个答案:

答案 0 :(得分:0)

实际上是有效的,因为格式化程序基于Locale,所以你需要添加一个默认的Locale,比如英国的dot,而不是逗号。

 NumberFormat nf = NumberFormat.getNumberInstance(Locale.ENGLISH);
    DecimalFormat df = (DecimalFormat) nf;

    {
        df.applyPattern("##.00");
    }

答案 1 :(得分:0)

DecimalFormat formatter = new DecimalFormat("#,###.00",Locale.ENGLISH);