用两个dp格式化Double

时间:2013-05-14 07:21:35

标签: java android

从我下面的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 个答案:

答案 0 :(得分:1)

这对我有用:

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

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

答案 1 :(得分:0)

你可以使用

 String formatted_value = String.format("$%.2f", value);

答案 2 :(得分:0)

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

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

答案 3 :(得分: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