Калькулятор процентной ставки по ипотечным кредитам, возвращающий нелепые значения - PullRequest
0 голосов
/ 20 декабря 2018

Код возвращает чрезвычайно низкие значения для ипотечного платежа.

Я ожидал что-то вроде 18 000 (при условии отсутствия налога, страховки и т. Д.). Итак, какие значения мне нужно изменить, чтобы получить это число?Что-то не так с тем, как я кодирую?И да, я сделал Google.Просто какой-то дневной проект, чтобы вернуться в кодирование.Спасибо!

p = float(input("What is your mortgage principal?"))
r = float(input("What's your interest rate?"))
t = int(input("How long is your mortage gonna last?"))

n = 12

finalresult = p * (1 + (r/t))**(n * t)

print("This is how much you will be paying over one year!", finalresult)

Пример ввода / вывода:

What is your mortgage principle?300000
What's your interest rate?3.5
How long is your mortage gonna last?15
This is how much you will be paying over one year! 7.44056195468128e+21

Process finished with exit code 0

1 Ответ

0 голосов
/ 20 декабря 2018

Процентная ставка, которую вы предоставляете, представляет собой процент, который нужно разделить на 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 тыс. Долл. США для вашего примера).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...