当区域设置更改为印度尼西亚时,DecimalFormat 不起作用

DecimalFormat not working when locale changed to indonesia

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

 public static String formatNumberWithCommaSeparated(Double number){

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

结果

formatNumberWithCommaSeparated(125.0);

-In English,Malay,Thailand,Chinese => 125.00

-In Indonesia Language => 125,00

实际上可以正常工作,因为格式化程序是基于语言环境的,所以您需要添加一个默认语言环境,就像在英国一样,它是点而不是逗号。

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

    {
        df.applyPattern("##.00");
    }
DecimalFormat formatter = new DecimalFormat("#,###.00",Locale.ENGLISH);