垫python漂浮

hoj*_*oju 26 python floating-point pad zero

我想填充一些百分比值,以便小数点前总共有3个单位.有了整数,我可以使用'%03d' - 是否有相当于花车?

'%.3f'适用于小数点后但"%03f"不执行任何操作.

Jon*_*ehl 43

'%03.1f'有效(1可以是任何数字,或空字符串):

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

>>> "%04.f"%3.2
'0003'
Run Code Online (Sandbox Code Playgroud)

请注意,字段宽度包括小数和小数位数.

  • 如果值为负,则前导' - '将消耗一个字段宽度计数 - "%06.2f"%-3.3给出"-03.30",所以如果你必须有3位数即使是负数,你必须再添加一个字段宽度.您可以使用'*'fieldwidth值来执行此操作,并传递计算值:value = -3.3; 打印"%0*.2f"%(6+(值<0),值) (3认同)

noɥ*_*ɐɹƆ 14

或者,如果您想使用.format:

              {:6.1f}
                ? ? 
                | |
# digits to pad | | # of decimal places to display
Run Code Online (Sandbox Code Playgroud)

Copypasta: {:6.1f}

用法示例:

'Num: {:6.1f}'.format(number)
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这是要填充的总数字,包括小数点右侧的数字。它不仅仅是小数点左边的数字。我花了很长时间才弄清楚为什么这不起作用 (2认同)

Mar*_*ark 8

你也可以使用zfill.

str(3.3).zfill(5)
'003.3'
Run Code Online (Sandbox Code Playgroud)