如何在Python中将浮点数格式化为固定宽度
如何根据以下要求将浮点数格式化为固定宽度:如何在Python中将浮点数格式化为固定宽度,python,string,numbers,number-formatting,Python,String,Numbers,Number Formatting,如何根据以下要求将浮点数格式化为固定宽度: n
% 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
印刷品
23.2300
0.1233
1.0000
4.2230
9887.2000
大括号内的格式说明符遵循。具体而言,在这种情况下,它由以下部分组成:
- 冒号前的空字符串表示“将下一个提供的参数设置为
”——在本例中,format()
是唯一的参数x
- 冒号后面的
部分是10.4f
表示定点表示法f
是正在打印的字段的总宽度,左侧用空格填充10
是小数点后的位数4
>>> v=10.4
>>> print('% 6.2f' % v)
10.40
>>> print('% 12.1f' % v)
10.4
>>> print('%012.1f' % v)
0000000010.4
请参见Python3.x:
在Python3中
GPA = 2.5
print(" %6.1f " % GPA)
6.1f
表示点后1位数字表示如果在点后打印2位数字,则只应%6.2f
,以便%6.3f
在点后打印3位数字。这一问题得到解答已经有几年了,但从Python 3.6()开始,您可以使用新的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
你也可以在左键盘上加零。例如,如果希望
number
的长度为9个字符,请使用以下命令左键填充零:
print({:09.3f})。格式(编号))
因此,如果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
因此,如果您想在文件名中强制执行必要的数字顺序,则需要在pad中留下适当数量的零。我需要类似的数组。这对我很有帮助
some_array_rounded=np.around(some_array, 5)
这将打印
76.66
:
print(“编号:”,f“{76.663254:.2f}”)
所以我知道4f代表将小数限制为4(后面是零),但10是什么意思?这是否意味着此格式不适用于大于9999999999(十个9)的整数?好奇。10.4
表示10个字符的宽度和4位小数的精度。@hobbes3:10
是最小字段宽度,即打印字符串的最小长度。默认情况下,数字右对齐并用空格填充--有关更多详细信息,请参阅。对于2.7之前的Python:(%0.4f”%x)。rjust(10)
@StevenRumbalski:或者干脆%10.4f”%x
。在Python2.6中,还可以使用“{0:10.4f}”.format(x)
。请注意,宽度还包括点字符。因此,如果指定9为宽度,1将用于打印点,其他8将用于打印数字和空格。这在过去4年中发生了变化,现在%
格式化是最古老的格式化方法。出于多种原因,使用str.format
或f-strings
优于%
。以前只有str.format
,人们有一些原因,但f-strings
修复了这个漏洞,和
00023.2300
00000.1233
00001.0000
00004.2230
09887.2000
some_array_rounded=np.around(some_array, 5)