2012-02-21 26 views

回答

12
DecimalFormatSymbols symbols = new DecimalFormatSymbols(); 
symbols.setGroupingSeparator(' '); 
DecimalFormat format = new DecimalFormat("#,###.00", symbols); 

System.out.format("%14s\n", format.format(1235353.93)); 
System.out.format("%14s\n", format.format(10.03)); 

低于上述打印我的机器上:

1 235 353.93 
     10.03 

您也可以使用String.format如果你希望将结果存储到一个变量:

String formatted = String.format("%14s", format.format(1235353.93)); 

System.out.println("Formatted Number is " + formatted); 

然而,如果您不打算使用(空格)作为分组分隔符,那么您可以简单地做到了这一点:

String.format("%,14.2f", 234343.34); 

这将打印:

234,343.34 
+0

什么?将它分配给一个变量,例如?你可以解释吗? – Juvanis 2012-02-21 10:50:01

+0

@deporter看到我的编辑 – adarshr 2012-02-21 10:52:33

+0

谢谢你们,String.format(“%14s”,format.format(1235353.93))是我需要的1。我必须从Java打印旧的COBOL报告。 – Rinus 2012-02-21 11:27:42

1

给一个尝试String#format() - 它的格式字符串应该让你做你所需要的。

0

如果你这样做是格式化的货币,这是更强大的使用语言环境:关于使用此格式的字符串其他地方

Locale uslocale = new Locale.Builder().setLanguage("en").setRegion("US").build(); 
NumberFormat.getCurrencyInstance(uslocale).format(payment); 
相关问题