固定长度。 空间spadded,千位分隔符,Java中的2位小数值格式

如何将数字格式化为固定长度,空格填充左侧字符串,空格为千位分隔符,Java中有2个小数位? (比方说14个字符串)

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);