处理字符串格式不加零
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,00
、10.00
的原因。请注意,如果您的格式化程序不适合您指定的格式,它会扩展为 4 个字符!
因此您需要使用格式 "%06.2f%n"
我将使用 perl
向您展示它对我的作用:
$ perl -E 'say sprintf("%06.2f", 20)'
020.00
所以真的应该很简单
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,00
、10.00
的原因。请注意,如果您的格式化程序不适合您指定的格式,它会扩展为 4 个字符!
因此您需要使用格式 "%06.2f%n"
我将使用 perl
向您展示它对我的作用:
$ perl -E 'say sprintf("%06.2f", 20)'
020.00