c++ - 使用printf打印 float 时有额外的前导零?

我希望能够使用 printf 编写一个如下所示的时间字符串: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);

https://stackoverflow.com/questions/2486410/

相关文章:

excel - (Excel) 基于相邻单元格值的条件格式

python - 如何右对齐数字数据?

c# - 十六进制的 String.Format

c# - 在 C# (asp.net MVC3) 中用逗号和小数格式化数字

ruby - CSV.read 第 x 行的非法引用

c# - 如何停止 ReSharper 删除对象初始化程序中的空格

c# - 格式化 TimeSpan 大于 24 小时

ios - 如何将 Double 格式化为货币 - Swift 3

c# - 在 C# 中使用自定义千位分隔符

formatting - 如何关闭 JSLint 缩进警告?