Я хочу добавить некоторые процентные значения, чтобы перед десятичной точкой всегда было 3 единицы. С целыми числами я мог бы использовать "% 03d" - есть ли эквивалент для чисел с плавающей запятой?
«%. 3f» работает после запятой, но «% 03f» ничего не делает.
'% 03.1f' работает (1 может быть любым числом или пустой строкой):
>>> "%06.2f"%3.3 '003.30' >>> "%04.f"%3.2 '0003'
Обратите внимание, что ширина поля включает десятичные и дробные цифры.
В качестве альтернативы, если вы хотите использовать .format:
.format
{:6.1f} ↑ ↑ | | # digits to pad | | # of decimal places to display
{:6.1f}
Пример использования:
'Num: {:6.1f}'.format(number)
Вы также можете использовать zfill.
str(3.3).zfill(5) '003.3'
Краткий пример:
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