我希望能够使用printf编写类似于这样的时间字符串:
但是当我尝试编写类似代码时:
1:04:02.1 hours
。但是当我尝试编写类似代码时:
printf("%d:%02d:%02.1f hours\n", 1, 4, 2.123456);
我得到:
1:04:2.1 hours
如何在浮点数格式化中添加前导零?
1:04:02.1 hours
。printf("%d:%02d:%02.1f hours\n", 1, 4, 2.123456);
我得到:
1:04:2.1 hours
如何在浮点数格式化中添加前导零?
使用%f
格式说明符时,“2”被视为总共的最小字符数,而不是小数点前的数字个数。因此,您需要将其替换为4,以获取两个前导数字+小数点+一个小数位。
printf("%d:%02d:%04.1f hours\n", 1, 4, 2.123456);
尝试使用%04.1f
代替%02.1f
。这里的“4”表示至少会打印出4个字符,而“2.1”有3个(> 2)字符,所以为了启用填充零,你需要4个。
-00.1
。 - Mohammad Kholghif = fabsf(f)
,然后 -0%.1f
。这对于 f<10
的情况很有效。对于 f>10
的情况,它类似于 -010.3
。我不想要前导的 0
:-10.3
。有更好的想法吗? - Mohammad Kholghi