Java中如何将数字格式化为固定长度、空格填充、千位分隔符、2位小数

Java中如何将数字格式化为固定长度、空格填充、千位分隔符、2位小数,java,formatting,decimal,string-formatting,padding,Java,Formatting,Decimal,String Formatting,Padding,在Java中,如何将数字格式化为固定长度,在左字符串上填充空格,空格为千位分隔符,小数点后2位? (假设为14个字符的字符串) 即 在我的机器上打印以下内容: 1 235 353.93 10.03 如果要将结果存储到变量中,也可以使用String.format: String formatted = String.format("%14s", format.format(1235353.93)); System.out.println("Formatted Number

在Java中,如何将数字格式化为固定长度,在左字符串上填充空格,空格为千位分隔符,小数点后2位? (假设为14个字符的字符串)

在我的机器上打印以下内容:

  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

试一试-它的格式字符串应该可以让你做你需要的事情。

如果你这样做是为了格式化货币,那么使用区域设置会更可靠:

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

在其他地方使用这个格式化字符串怎么样?将其分配给变量,例如。?你能解释一下吗?谢谢大家,字符串.format(“%14s”,format.format(1235353.93))是我需要的1。我必须从Java打印一份旧的COBOL报告。
    234,343.34
Locale uslocale = new Locale.Builder().setLanguage("en").setRegion("US").build();
NumberFormat.getCurrencyInstance(uslocale).format(payment);