Java 用两个dp格式化Double
从下面的decimalForm方法中,我想将双精度值7777.54转换为777,54,但得到的是777 54。你错过了什么?结果应该是777,54Java 用两个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
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分钟