使用前导零格式化浮点数

Format floating point number with leading zeros

为什么

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

打印 1.235 而不是 001.235?

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

System.out.format(format, 1.23456789);

这里%0后面的数字定义了全角包括小数点,所以需要改成7:

System.out.format("%07.3f", 1.23456789);
DecimalFormat formatter = (DecimalFormat)NumberFormat.getNumberInstance(Locale.US);
formatter.applyPattern("000.###");
System.out.format(formatter.format(1.23456789));

结果:

001.234

Demo