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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当locale更改为indonesia时,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

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

答案

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

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

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

以上是关于当locale更改为indonesia时,DecimalFormat无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

使用别名访问MSSQL Express

当状态更改为媒体结束时,QMediaPlayer 状态未停止

为啥当我添加一个选择选项来选择表单字段时不会更改为有效?

当tableview结束显示单元格时如何更改为读取状态?

当视图从纵向更改为横向时,方向不会改变

当单击带有 TextField 的警报时,UIPickerView 更改为正常的 textField