Format a number containing a decimal point with leading zeroes
我想用带前导零的小数点来格式化一个数字。
这个
1 2 | >>> '3.3'.zfill(5) 003.3 |
考虑所有的数字,甚至小数点。python中是否有只考虑整个部分的函数?
我只需要格式化不超过5位小数的简单数字。此外,使用
这就是你要找的吗?
1 2 | >>>"%07.1f" % 2.11 '00002.1' |
所以根据你的评论,我可以想出这个(尽管不再那么优雅了):
1 2 3 4 5 | >>> fmt = lambda x :"%04d" % x + str(x%1)[1:] >>> fmt(3.1) 0003.1 >>> fmt(3.158) 0003.158 |
号
我喜欢新的格式。
1 2 3 4 | 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:
- 1是用于可变暂停的位置固定器
- 0表示用前导零填充
- 6包括小数点在内的字符总数
- 2精度
- F将整数转换为浮点数
像您的示例一样,从一个字符串开始,您可以编写一个像这样的小函数来执行您想要的操作:
1 2 3 4 5 6 | def zpad(val, n): bits = val.split('.') return"%s.%s" % (bits[0].zfill(n), bits[1]) >>> zpad('3.3', 5) '00003.3' |
。
这样地?
1 2 | >>> '%#05.1f' % 3.3 '003.3' |