如何在Perl中以最小宽度格式舍入和打印浮点数

Dan*_*ray 1 perl string-formatting

我想做的事情如下:

printf('%3.3f%% ', $percent);
Run Code Online (Sandbox Code Playgroud)

但我仍然得到输出:

99.999%
100.000%
Run Code Online (Sandbox Code Playgroud)

我想要像:

 99.999%
100.000%
Run Code Online (Sandbox Code Playgroud)

所以它的填充空间小于整个宽度.什么格式说明符可以完成我想要做的事情?

Bor*_*din 5

之前的数字表示整个字段宽度的最小值,因此您需要7在其中以允许小数点前后的三位数,并且还需要一个点本身:

printf "%7.3f%%\n", $_ for 99.999, 100;
Run Code Online (Sandbox Code Playgroud)

产量

 99.999%
100.000%
Run Code Online (Sandbox Code Playgroud)