如何在Java中将数字格式化为固定长度,带空格,千位分隔符,2个小数位

问题描述 投票:5回答:3

如何在Java中将数字格式化为固定长度的空格,并在左字符串上填充空格,将空格作为千​​位分隔符,并在Java中保留两位小数?(假设是14个字符的字符串)

Number = 10.03 must be:     "         10.03" 
and  
Number = 1235353.93 must be "  1 235 353.93".
java formatting decimal string-formatting padding
3个回答
16
投票
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
投票

尝试String#format()-其格式字符串应让您执行所需的操作。


0
投票

如果您正在执行此操作以设置货币格式,则使用语言环境会更可靠:

Locale uslocale = new Locale.Builder().setLanguage("en").setRegion("US").build();
NumberFormat.getCurrencyInstance(uslocale).format(payment);
© www.soinside.com 2019 - 2024. All rights reserved.