填充Python浮点数

46 投票
4 回答
45926 浏览
提问于 2025-04-15 14:20

我想给一些百分比值加上填充,这样在小数点前总是有3个数字。对于整数,我可以用'%03d'来实现——那对于浮点数有没有类似的呢?

'%.3f'可以用来控制小数点后面的位数,但'%03f'却没有任何效果。

4 个回答

10

你可以使用 str.zfill 这个方法:

str(3.3).zfill(5)
'003.3'
29

另外,如果你想使用 .format 方法:

              {:6.1f}
                ↑ ↑ 
                | |
# digits to pad | | # of decimal places to display

复制粘贴: {:6.1f}

这里的6包括小数点左边的数字、小数点本身,以及小数点右边的数字。

使用示例:

'{:6.2f}'.format(4.3)
Out[1]: '  4.30'

f'{4.3:06.2f}'
Out[2]: '004.30'

'{:06.2f}'.format(4.3)
Out[3]: '004.30'
55

'%03.1f' 这个写法是有效的(1可以是任何数字,或者是空字符串):

>>> "%06.2f"%3.3
'003.30'

>>> "%04.f"%3.2
'0003'

需要注意的是,字段的宽度包括小数点和小数部分的数字。

撰写回答