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

标签 java formatting decimal string-formatting padding

如何在 Java 中将数字格式化为固定长度,在左侧字符串上用空格填充空格作为千​​位分隔符,小数点后两位? (比方说 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

关于java - 如何在 Java 中将数字格式化为固定长度、空格填充、千位分隔符、2 位小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9376031/

相关文章:

java - 变量未在函数中初始化

java - 生成的 JAR 文件未执行

java - 为什么 Integer.parseInt(String s, 2) 和 Integer.toBinaryString(int i) 不兼容?

java - 无法从 api 获取数据到 fragment 中的 Gridview

php - 在 PHP 中转换日期格式

javascript - 以欧洲格式格式化数字,带两位小数

java - 如何在Java中将数字四舍五入到n位小数

angular - 全局更改 Angular7 十进制格式

php - 如何在 php 中将一个巨大的整数转换为十六进制?

javascript - 在 JavaScript 中检查数字的小数点是否大于 .5?