Pad Python плавает - PullRequest
       21

Pad Python плавает

23 голосов
/ 15 сентября 2009

Я хочу добавить некоторые процентные значения, чтобы перед десятичной точкой всегда было 3 единицы. С целыми числами я мог бы использовать "% 03d" - есть ли эквивалент для чисел с плавающей запятой?

«%. 3f» работает после запятой, но «% 03f» ничего не делает.

Ответы [ 4 ]

41 голосов
/ 15 сентября 2009

'% 03.1f' работает (1 может быть любым числом или пустой строкой):

>>> "%06.2f"%3.3
'003.30'

>>> "%04.f"%3.2
'0003'

Обратите внимание, что ширина поля включает десятичные и дробные цифры.

12 голосов
/ 01 января 2017

В качестве альтернативы, если вы хотите использовать .format:

              {:6.1f}
                ↑ ↑ 
                | |
# digits to pad | | # of decimal places to display

Copypasta: {:6.1f}

Пример использования:

'Num: {:6.1f}'.format(number)
7 голосов
/ 15 сентября 2009

Вы также можете использовать zfill.

str(3.3).zfill(5)
'003.3'
0 голосов
/ 16 июня 2019

Краткий пример:

var3= 123.45678
print(
    f'rounded1    \t {var3:.1f} \n' 
    f'rounded2    \t {var3:.2f} \n' 
    f'zero_pad1   \t {var3:06.1f} \n'  #<-- important line
    f'zero_pad2   \t {var3:07.1f}\n'   #<-- important line
    f'scientific1 \t {var3:.1e}\n'
    f'scientific2 \t {var3:.2e}\n'
)

Дает вывод

rounded1         123.5 
rounded2         123.46 
zero_pad1        0123.5 
zero_pad2        00123.5
scientific1      1.2e+02
scientific2      1.23e+02
...