Как при форматировании строки установить переменное значение точности для вещественных чисел?

Собственно в заголовке весь вопрос уже полностью дан, но повторю его. Как в ('%.3f' % i) где i это число, заменить 3 перед f на число в переменной?


Ответы (2 шт):

Автор решения: Кирилл Малышев

Используйте f-строки:

i = 1/3
p = 5
res = f'{i:.{p}f}'  # '0.33333'
→ Ссылка
Автор решения: Andy Pavlov

Через обычный str.format() тоже можно подставить переменную.

i = 5    
print('%.{}f'.format(i))

Либо, если нужно сразу вывести в строку результат, а не подготовить, к примеру, шаблон, то можно так:

value = 0.1
precision_count = 4
print('{0:.{1}f}'.format(value, precision_count)) # 0.1000
→ Ссылка