0

从下面的 decimalForm 方法中,我想将双精度值 7777.54 转换为 7 777,54 但我得到 7 777 54。错过了什么?结果应该是 7 777,54

public static String decimalForm(double value){

            DecimalFormat df = new DecimalFormat("#,###,###.00");
            String formatted_value = df.format(value).replaceAll(",", " ").replace(".", ",");

            return formatted_value;
        }
4

4 回答 4

1

这对我有用:

DecimalFormat df = new DecimalFormat("#,###,###.00");
String formatted_value = df.format(value).replaceAll("\\.", " ");

事实上,我试图打印出来df.format(value)value=95871我得到了95.871,00

于 2013-05-14T07:25:45.647 回答
0

您可以使用

 String formatted_value = String.format("$%.2f", value);
于 2013-05-14T07:27:46.797 回答
0

在模式#,###,###.00中,.是小数点分隔符,,是组分隔符。这两个分隔符使用的字符取决于您的语言环境。

例如,如果您是法国人,df.format(value)则将等于7 777,54

于 2013-05-14T07:27:53.607 回答
0

这不是 String.replace 版本

    DecimalFormat df = new DecimalFormat("#,###,###.00", new DecimalFormatSymbols(Locale.FRANCE));
    String s = df.format(7777.54);
    System.out.println(s);

输出

7 777,54
于 2013-05-14T07:35:40.520 回答