在浮点bash printf上填充零

lev*_*uby 4 precision bash printf

我希望在bash中使用填充零打印浮点数来填充范围%5.3f.我知道printf函数.

我的问题如下:

printf "0%5.3f\n" 3.00
Run Code Online (Sandbox Code Playgroud)

按预期返回

03.000
Run Code Online (Sandbox Code Playgroud)

但是这条线

printf "0%5.3f\n" 23.00
Run Code Online (Sandbox Code Playgroud)

相反

023.000 
Run Code Online (Sandbox Code Playgroud)

这当然不是我想要的.

有什么建议吗?

Mic*_*ild 13

你必须把0 后面%:

printf "%06.3f\n" 23.00
Run Code Online (Sandbox Code Playgroud)

请注意,我还将最小字段宽度增加到6,否则不会出现填充(3个小数位,一个点,只留下小数点前面的一个数字).