使用前导零格式化浮点数

16

为什么会

System.out.format("%03.3f", 1.23456789);

如何使得输出为1.235而不是001.235

以下代码行的format字符串应该如何才能得到001.235作为输出?

System.out.format(format, 1.23456789);

1
@SashaSalauyou 把这个作为答案提交。你已经发布了我即将要提交的内容。 - Daniel Tung
2个回答

26

%0后面的数字定义了包括小数点在内的完整宽度,所以你需要将其更改为7

System.out.format("%07.3f", 1.23456789);

我建议先格式化字符串,然后再输出。String.format("%07.3f", 1.23456789); - Daniel Tung
如果我不需要这个字符串进行任何其他操作,为什么我要先格式化它然后再输出呢? @DanielTung - principal-ideal-domain

4
DecimalFormat formatter = (DecimalFormat)NumberFormat.getNumberInstance(Locale.US);
formatter.applyPattern("000.###");
System.out.format(formatter.format(1.23456789));

Result:

001.234

Demo


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接