我想用前导零格式化一个带小数点的数字。
这个
>>> '3.3'.zfill(5)
003.3
考虑所有数字甚至小数点。python中是否有一个只考虑整个部分的函数?
我只需要格式化不超过五位小数的简单数字。此外,使用%5f
似乎考虑尾随而不是前导零。
我想用前导零格式化一个带小数点的数字。
这个
>>> '3.3'.zfill(5)
003.3
考虑所有数字甚至小数点。python中是否有一个只考虑整个部分的函数?
我只需要格式化不超过五位小数的简单数字。此外,使用%5f
似乎考虑尾随而不是前导零。
这就是你要找的吗?
>>> "%07.1f" % 2.11
'00002.1'
所以根据你的评论,我可以想出这个(虽然不再那么优雅了):
>>> fmt = lambda x : "%04d" % x + str(x%1)[1:]
>>> fmt(3.1)
0003.1
>>> fmt(3.158)
0003.158
我喜欢新的格式。
loop = 2
pause = 2
print 'Begin Loop {0}, {1:06.2f} Seconds Pause'.format(loop, pause)
>>>Begin Loop 2, 0002.1 Seconds Pause
在 {1:06.2f} 中:
像您的示例一样从字符串开始,您可以编写一个像这样的小函数来执行您想要的操作:
def zpad(val, n):
bits = val.split('.')
return "%s.%s" % (bits[0].zfill(n), bits[1])
>>> zpad('3.3', 5)
'00003.3'
像这样?
>>> '%#05.1f' % 3.3
'003.3'
print('{0:07.3f}'.format(12.34))
这将总共有 7 个字符,包括 3 个小数点,即。“012.340”