如何将数字格式化为固定长度的空格,填充在左侧字符串中,空格为千位分隔符,在Java中有两位小数位? (比方说14个字符的字符串)固定长度。在Java中,数字值格式为空格,千位分隔符,小数点后两位数字值格式
I.e.
Number = 10.03 must be " 10.03" and
Number 1235353.93 must be " 1 235 353.93".
如何将数字格式化为固定长度的空格,填充在左侧字符串中,空格为千位分隔符,在Java中有两位小数位? (比方说14个字符的字符串)固定长度。在Java中,数字值格式为空格,千位分隔符,小数点后两位数字值格式
I.e.
Number = 10.03 must be " 10.03" and
Number 1235353.93 must be " 1 235 353.93".
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
给一个尝试String#format() - 它的格式字符串应该让你做你所需要的。
如果你这样做是格式化的货币,这是更强大的使用语言环境:关于使用此格式的字符串其他地方
Locale uslocale = new Locale.Builder().setLanguage("en").setRegion("US").build();
NumberFormat.getCurrencyInstance(uslocale).format(payment);
什么?将它分配给一个变量,例如?你可以解释吗? – Juvanis 2012-02-21 10:50:01
@deporter看到我的编辑 – adarshr 2012-02-21 10:52:33
谢谢你们,String.format(“%14s”,format.format(1235353.93))是我需要的1。我必须从Java打印旧的COBOL报告。 – Rinus 2012-02-21 11:27:42