Процентная ставка, которую вы предоставляете, представляет собой процент, который нужно разделить на 100, чтобы получить математически полезное значение.Если вы введете 0.035
, вы получите разумную цифру 456365.140385318
.Если вы ожидаете, что пользователи предоставят процент (разумный), то выполните для них деление, и остальная часть математики сработает:
r = float(input("What's your interest rate (as a percentage, e.g. 3.5)?")) / 100
Как отмечено в комментариях, расчет finalresult
следует использовать r/n
, а не r/t
;Вы делите ставку по месяцам года, а не по годам ипотеки.Для 15-летней ипотеки эта ошибка не столь очевидна, как проблема с процентной ставкой, превышающей 100%, но она все еще довольно существенна (она недооценивает общую сумму, уплаченную на ~ 50 тыс. Долл. США для вашего примера).