【问题标题】:How can I format a float with given precision and zero padding?如何格式化具有给定精度和零填充的浮点数?
【发布时间】:2015-03-04 02:06:15
【问题描述】:

我已经查看了几十个类似的问题 - 我很高兴获得另一个答案的链接 - 但我想在 python 3.3 中对浮点数进行零填充

n = 2.02
print( "{?????}".format(n))
# desired output:
002.0200

浮点数的精度很简单,但我也无法获得零填充。什么进入???的

【问题讨论】:

    标签: python string python-3.x string.format


    【解决方案1】:

    你可以像这样使用格式说明符

    >>> "{:0>8.4f}".format(2.02)
    '002.0200'
    >>> print("{:0>8.4f}".format(2.02))
    002.0200
    >>> 
    

    这里,8 代表总宽度,.4 代表精度。而0> 表示字符串必须右对齐,并从左边用0 填充。

    【讨论】:

    • 接受这个答案,因为您提供了额外的解释。
    【解决方案2】:

    您可以对字符串使用新旧格式化方法::

    In [9]: "%08.4f" %(2.02)
    Out[9]: '002.0200'
    
    In [10]: "{:08.4f}".format(2.02)
    Out[10]: '002.0200'
    

    【讨论】:

    • 我在凌晨 4 点醒来,当我意识到我一直在尝试使用 "{:08.4f}".format(2.02) 因为我试图填充到两个地方时,我有一个头疼的时刻。完全忽略了我必须考虑预期输出的整个宽度的事实。感谢您的帮助。
    猜你喜欢
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    相关资源
    最近更新 更多