处理字符串格式不加零

Processing String forrmat doesn't add zeros

所以真的应该很简单

float x =0;
for (int i=0;x<=100;i++){
print(String.format("%03.2f%n", x));
x+=10;
}

这是我当前的代码,它应该打印出来 000,00 010,00 020,00 030,00 040,00 ... 但它错过了开头的 0 它只打印 0,00 10,00 20,00 ...

很确定解决方案很简单,但我就是找不到它

您没有指定您使用的编程语言。但是 sprintf 在很多语言中都是相似的。

您正在格式化浮点数。对于浮点数,第一位表示字符串的总位置数,包括小数点分隔符,第二位是小数点后的位数。在您的情况下,您总共指定了三个数字,其中两个在小数点分隔符之后。这就是您看到 0,0010.00 的原因。请注意,如果您的格式化程序不适合您指定的格式,它会扩展为 4 个字符!

因此您需要使用格式 "%06.2f%n"

我将使用 perl 向您展示它对我的作用:

$ perl -E 'say sprintf("%06.2f", 20)'
020.00