Как отформатировать плавающее число в фиксированную ширину в 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
282
задан hobbes3 25 September 2013 в 09:21
поделиться

1 ответ

Вы также можете оставить пэд с нулями. Например, если вы хотите, чтобы длина number составляла 9 символов, а слева добавляли нули, используйте:

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, ...

Таким образом, если вы хотите установить необходимый порядковый номер в именах файлов, вам нужно слева добавить соответствующее число нулей.

4
ответ дан 23 November 2019 в 01:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: