如何在Python中将浮点数格式化为固定宽度

2024-04-19 18:09:10 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将浮点数格式化为固定宽度,并满足以下要求:

  1. 如果n<;1,则前导零
  2. 加上小数点后零以填充固定宽度
  3. 截断超过固定宽度的小数位数
  4. 对齐所有小数点

例如:

% 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

Tags: inltformatnumberfor宽度formattersomething
3条回答

在python3中,以下操作有效:

>>> v=10.4
>>> print('% 6.2f' % v)
  10.40
>>> print('% 12.1f' % v)
        10.4
>>> print('%012.1f' % v)
0000000010.4

回答这个问题已经有几年了,但是从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
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是小数点后的位数。

相关问题 更多 >