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

如何在Perl中以最小宽度格式舍入和打印浮点数,perl,string-formatting,Perl,String Formatting,我想做一些事情,比如: printf('%3.3f%% ', $percent); 99.999% 100.000% 99.999% 100.000% 但我仍然得到如下输出: 99.999% 100.000% 我想要一些像: printf('%3.3f%% ', $percent); 99.999% 100.000% 99.999% 100.000% 因此,它的衬垫小于整个宽度,并带有空格。什么格式说明符可以完成我要做的工作?点前的数字表示整个字段宽度的最小值,因此需要7,

我想做一些事情,比如:

printf('%3.3f%% ', $percent);
 99.999%
100.000%
 99.999%
100.000%
但我仍然得到如下输出:

99.999%
100.000%
我想要一些像:

printf('%3.3f%% ', $percent);
 99.999%
100.000%
 99.999%
100.000%
因此,它的衬垫小于整个宽度,并带有空格。什么格式说明符可以完成我要做的工作?

点前的数字表示整个字段宽度的最小值,因此需要7,以允许小数点前后有三位数字,点本身有一位数字:

printf "%7.3f%%\n", $_ for 99.999, 100;
输出

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

printf "%7.3f%%\n", $_ for 99.999, 100;
输出