处理字符串格式不加零

问题描述

所以它真的应该很简单

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