【问题标题】:DecimalFormat not working when locale changed to indonesia当语言环境更改为印度尼西亚时,DecimalFormat 不起作用
【发布时间】:2018-01-03 09:24:32
【问题描述】:

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

 public static String formatNumberWithCommaSeparated(Double number){

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

结果

formatNumberWithCommaSeparated(125.0);

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

-印度尼西亚语 => 125,00

【问题讨论】:

    标签: android localization decimalformat


    【解决方案1】:

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

     NumberFormat nf = NumberFormat.getNumberInstance(Locale.ENGLISH);
        DecimalFormat df = (DecimalFormat) nf;
    
        {
            df.applyPattern("##.00");
        }
    

    【讨论】:

      【解决方案2】:
      DecimalFormat formatter = new DecimalFormat("#,###.00",Locale.ENGLISH);
      

      【讨论】:

        猜你喜欢
        • 2019-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-22
        相关资源
        最近更新 更多