Улучшить точность при расчетах с числами после точки
Есть программа для расчета сопротивления в схеме с n количеством звеньев. Есть код с рекурсией (важно сделать именно рекурсию, такова моя задача), в котором примерно после 16 звеньев python просто перестает считать и выводит одинаковые числа при любом значении n. Как сделать так чтобы программа выводила мне точные числа (если это вообще возможно)?
def Rx(r):
if r == 1:
return 3
res = Rx(r - 1)
return 2 + res/(1+res)
a=int(input())
print(Rx(a))
Ответы (1 шт):
Можешь использовать встроенный в python модуль decimal
from decimal import Decimal Decimal("0.1") + Decimal("0.2") # 0.3
Тем самым исправив проблемы с точностью, потом уже сможешь округлить до нужного количества знаков. *Примечание: в Dicimal передаётся строка, а не число, а так же нельзя смешивать в операциях дробные числа float и Decimal (т.е. сначала нужно всё привести к Decimal)