如何将浮点数格式化为固定宽度,具体要求如下:
如果n < 1,前导0
添加尾随小数零(s)以填充固定宽度
截断超过固定宽度的十进制数字
对齐所有小数点
例如:
% 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
你也可以留下零。例如,如果你想让number有9个字符长度,左边用0填充,使用:
打印(' {:09.3 f} ' .format(数量)
因此,如果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,…
因此,如果您希望在文件名中强制执行必要的数字顺序,则需要在左侧填充适当数量的零。
numbers = [23.23, 0.1233, 1.0, 4.223, 9887.2]
for x in numbers:
print("{:10.4f}".format(x))
打印
23.2300
0.1233
1.0000
4.2230
9887.2000
花括号内的格式说明符遵循Python格式字符串语法。具体来说,在本例中,它由以下部分组成:
冒号前的空字符串表示“将下一个提供的参数用于format()”-在这种情况下x是唯一的参数。
冒号后面的10.4f部分是格式规范。
f表示定点表示法。
10是打印字段的总宽度,用空格填充。
4是小数点后的位数。
你也可以留下零。例如,如果你想让number有9个字符长度,左边用0填充,使用:
打印(' {:09.3 f} ' .format(数量)
因此,如果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,…
因此,如果您希望在文件名中强制执行必要的数字顺序,则需要在左侧填充适当数量的零。