Я вычисляю цифры числа пи на основе формулы Рамануджана и разрешаю пользователю контролировать количество итераций суммирования. Я хочу, чтобы количество десятичных знаков менялось в зависимости от желаемого количества итераций.
Насколько я знаю, Python не позволяет изменять числовой вывод с помощью:
результат = 3,14159...
а = 50
б = 48
print('result = %a.bf' % result')
Но в зависимости от количества итераций точность пи-небесных ракет, но для небольшого количества итераций (1, 2, ...) требуется не так много знаков после запятой.
Я хотел бы, чтобы произошло следующее:
while True:
k = int(input("How many iterations do you want? "))
num_digits = k * 10
a = num_digits
b = num_digits - 2
result = calculate_pi(k)
print('result = %a.bf' % result')
.
.
.
Я понимаю, что это не то, как работает числовое форматирование Python, но я не знаю, как перевести то, что я хочу, на английском языке в сценарий.
питон3.6+:
print(f'result = %{a}.{b}f' % result)
старый питон:
print(('result = %%%d.%df' % (a, b)) % result) # %% is used to escape '%'
print('results = %{}.{}f'.format(a, b) % a)
В обоих случаях идея состоит в том, чтобы сначала создать строку с нужным заполнителем (%X.Yf
), а затем использовать ее во втором проходе.
упс, не обратил внимания. Фиксированный !
Работает, спасибо! Для будущих пользователей замените
a
наresult
, чтобы распечатать окончательный ответ.