Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用两个dp格式化Double_Java_Android - Fatal编程技术网

Java 用两个dp格式化Double

Java 用两个dp格式化Double,java,android,Java,Android,从下面的decimalForm方法中,我想将双精度值7777.54转换为777,54,但得到的是777 54。你错过了什么?结果应该是777,54 public static String decimalForm(double value){ DecimalFormat df = new DecimalFormat("#,###,###.00"); String formatted_value = df.format(value).replace

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

public static String decimalForm(double value){

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

            return formatted_value;
        }
这对我很有用:

DecimalFormat df = new DecimalFormat("#,###,###.00");
String formatted_value = df.format(value).replaceAll("\\.", " ");
事实上,我试图打印出
df.format(value)
,使用
value=95871
我得到了
95.871,00
您可以使用

 String formatted_value = String.format("$%.2f", value);
在模式
,#####,####.00
中,
是十进制分隔符,
是组分隔符。用于这两个分隔符的字符取决于您的区域设置


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

这不是字符串。替换版本

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

7 777,54

你试过把.00换成.###吗?是的,但是得到了77754@PankajKumar如何打破每个陈述?目前不是有用的注释。@EJP Ok。我正在删除。。。我想说OP应该写3个不同的语句而不是一个。我还说这可以(不是解决方案)完成任务…@PankajKumar,它确实可以
replaceAll
接受一个正则表达式,如果您只使用
您将有一个空字符串,因为所有内容都被替换了。@Pankaj&&BackSlash,很好,谢谢您它可以工作。是的,我今天学到了一些新东西:)由于堆栈溢出限制,请等待6分钟