From 5bede1d79f1cda165a662e3e194adfbfb0e297eb Mon Sep 17 00:00:00 2001 From: bwoodhoutson <31172910+bwoodhoutson@users.noreply.github.com> Date: Sat, 19 Aug 2017 21:53:14 -0500 Subject: [PATCH] The original code has the incorrect formula... thus giving the incorrect monthly payment. The original slide from their video has the wrong formula... The formula should be: monthlyPayment = P *( I * (1+ I)**N / ((1 + I)**N -1)) (test P = 100,000 // I = 6% // loanDurationInYears = 15years) == should give monthly payment of 843.86 Their original code gave a monthly payment of $5,000 to 6,000... --- ...ule4MortgageCalculatorChallengeSolution.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Solutions/Module4MortgageCalculatorChallengeSolution.py b/Solutions/Module4MortgageCalculatorChallengeSolution.py index ddb9c28..8d6b4a9 100644 --- a/Solutions/Module4MortgageCalculatorChallengeSolution.py +++ b/Solutions/Module4MortgageCalculatorChallengeSolution.py @@ -1,4 +1,3 @@ - #Declare and initialize the variables monthlyPayment = 0 loanAmount = 0 @@ -7,26 +6,26 @@ loanDurationInYears = 0 #Ask the user for the values needed to calculate the monthly payments -strLoanAmount = input("How much money will you borrow? ") -strInterestRate = input("What is the interest rate on the loan? ") +strLoanAmount = input("How much money will you borrow? ") +strInterestRate = input("What is the interest rate on the loan? (ex 6%=.06) ") strLoanDurationInYears = input("How many years will it take you to pay off the loan? " ) -#Convert the strings into floating numbers so we can use them in teh formula +#Convert the strings into floating numbers so we can use them in the formula loanDurationInYears = float(strLoanDurationInYears) -loanAmount = float(strLoanAmount) -interestRate = float(strInterestRate) +P = float(strLoanAmount) +I = float(strInterestRate)/12 #Since payments are once per month, number of payments is number of years for the loan * 12 -numberOfPayments = loanDurationInYears*12 +N = loanDurationInYears*12 + #Calculate the monthly payment based on the formula -monthlyPayment = loanAmount * interestRate * (1+ interestRate) * numberOfPayments \ - / ((1 + interestRate) * numberOfPayments -1) +monthlyPayment = P *( I * (1+ I)**N / ((1 + I)**N -1)) #provide the result to the user print("Your monthly payment will be " + str(monthlyPayment)) #Extra credit print("Your monthly payment will be $%.2f" % monthlyPayment) - +## for this example (Principle = 100,000, Interest = 6%, years = 15, monthly payment = 843.86)