如何根据以下要求将浮点数格式化为固定宽度:
例如:
% formatter something like '{:06}'
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print formatter.format(number)
输出就像
23.2300
0.1233
1.0000
4.2230
9887.2000
答案 0 :(得分:403)
for x in numbers:
print "{:10.4f}".format(x)
打印
23.2300
0.1233
1.0000
4.2230
9887.2000
花括号内的格式说明符跟在Python format string syntax之后。具体而言,在这种情况下,它由以下部分组成:
format()
” - 在这种情况下,x
是唯一的参数。10.4f
部分为format specification。f
表示定点表示法。10
是正在打印的字段的总宽度,由空格填充。4
是小数点后的位数。答案 1 :(得分:33)
回答这个问题已经有好几年了,但是从Python 3.6(PEP498)开始,您可以使用新的f-strings
:
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print(f'{number:9.4f}')
打印:
23.2300
0.1233
1.0000
4.2230
9887.2000
答案 2 :(得分:32)
在python3中,以下工作:
>>> v=10.4
>>> print('% 6.2f' % v)
10.40
>>> print('% 12.1f' % v)
10.4
>>> print('%012.1f' % v)
0000000010.4
答案 3 :(得分:7)
参见Python 3.x format string syntax:
IDLE 3.5.1
numbers = ['23.23', '.1233', '1', '4.223', '9887.2']
for x in numbers:
print('{0: >#016.4f}'. format(float(x)))
23.2300
0.1233
1.0000
4.2230
9887.2000
答案 4 :(得分:1)
这将打印76.66
:
print("Number: ", f"{76.663254: .2f}")
答案 5 :(得分:0)
在Python 3中。
GPA = 2.5
print(" %6.1f " % GPA)
6.1f
表示在点后1位数表示如果您在点后打印2位数,则只应%6.2f
,以便在点之后打印%6.3f
3位数。
答案 6 :(得分:0)
您还可以将零填充为空白。例如,如果您希望number
的长度为9个字符,请用0左填充:
print('{:09.3f}'.format(number))
因此,如果为number = 4.656
,则输出为:00004.656
对于您的示例,输出将如下所示:
numbers = [23.2300, 0.1233, 1.0000, 4.2230, 9887.2000]
for x in numbers:
print('{:010.4f}'.format(x))
打印:
00023.2300
00000.1233
00001.0000
00004.2230
09887.2000
一个可能有用的示例是当您想按字母顺序正确列出文件名时。我注意到在某些linux系统中,数字是:1,10,11,.. 2,20,21,...
因此,如果要在文件名中强制执行必要的数字顺序,则需要在键盘上填充适当数量的零。
答案 7 :(得分:0)
我需要类似的数组。那对我有帮助
some_array_rounded=np.around(some_array, 5)