为什么赢得String.format()给我一个左零填充浮点输出?

时间:2014-12-05 07:15:56

标签: java string-formatting

我正在尝试将小数8.6渲染为左边的零填充字符串,即08.6

为什么以下似乎不起作用?

double number = 8.6;
String.format("%03.1f", number); //expect "08.6", get "8.6"

格式化字符串似乎是正确的。我做错了什么?

2 个答案:

答案 0 :(得分:7)

给你一个左零填充浮点输出,只是3 的字段宽度包括小数点和小数部分(以及符号,如果它是否定的),所以你需要使用%04.1f代替该特定值。

输出:

public class Test {
    public static void main(String[] args) {
        double number = 8.6;
        System.out.println(String.format("%04.1f", number));
    }
}

是:

08.6

答案 1 :(得分:0)

您需要以%04.1f的形式提供输出08.6