Le calcul de l'intérêt hypothécaire en Python

Je suis actuellement en apprentissage de python au travers d'un tutoriel vidéo sur youtube, et se heurtent à une formule que je n'arrive pas à le saisir, puisque rien ne ressemble à droite pour moi. Le concept de base de l'exercer est de faire une calculatrice hypothécaire qui demande à l'utilisateur d'entrée de 3 pièces d'information, le Montant du Prêt, Taux d'Intérêt et la Durée du Prêt (en années)

il calcule ensuite les paiements mensuels à l'utilisateur. voici mon code:

__author__ = 'Rick'
# This program calculates monthly repayments on an interest rate loan/mortgage.

loanAmount = input("How much do you want to borrow? \n")
interestRate = input("What is the interest rate on your loan? \n")
repaymentLength = input("How many years to repay your loan? \n")

#converting the string input variables to float
loanAmount = float(loanAmount)
interestRate = float(interestRate)
repaymentLength = float(repaymentLength)

#working out the interest rate to a decimal number
interestCalculation = interestRate / 100

print(interestRate)
print(interestCalculation)

#working out the number of payments over the course of the loan period.
numberOfPayments = repaymentLength*12

#Formula
#M = L[i(1+i)n] /[(1+i)n-1]

#   * M = Monthly Payment (what were trying to find out)
#   * L = Loan Amount (loanAmount)
#   * I = Interest Rate (for an interest rate of 5%, i = 0.05 (interestCalculation)
#   * N = Number of Payments (repaymentLength)

monthlyRepaymentCost = loanAmount * interestCalculation * (1+interestCalculation) * numberOfPayments / ((1+interestCalculation) * numberOfPayments - 1)
#THIS IS FROM ANOTHER BIT OF CODE THAT IS SUPPOSE TO BE RIGHT BUT ISNT---
# repaymentCost = loanAmount * interestRate * (1+ interestRate) * numberOfPayments  /((1 + interestRate) * numberOfPayments -1)

#working out the total cost of the repayment over the full term of the loan
totalCharge = (monthlyRepaymentCost * numberOfPayments) - loanAmount


print("You want to borrow £" + str(loanAmount) + " over " + str(repaymentLength) + " years, with an interest rate of " + str(interestRate) + "%!")

print("Your monthly repayment will be £" + str(monthlyRepaymentCost))

print("Your monthly repayment will be £%.2f " % monthlyRepaymentCost)

print("The total charge on this loan will be £%.2f !" % totalCharge)

Tout fonctionne, mais la valeur qu'elle jette à la fin est complètement faux... un £100 de prêt avec un taux d'intérêt de 10% sur 1 an ne devrait pas me faire payer £0,83 $ par mois. Toute aide à obtenir ma tête autour de cette équation pour m'aider à comprendre serait grandement apprécié.

Quelque part vous êtes juste de payer l'intérêt et ne pas ajouter le montant du prêt... 0.83 x 12 = ~10
Quelle est la fréquence de l'intérêt accumulé? Tous les mois?
Je ne suis pas sûr, c'est l'instruction, j'ai été donnée à la suite du module. Créer une hypothèque/prêt de la calculatrice. * Demandez à l'utilisateur d'entrer le coût de l'emprunt, le taux d'intérêt, et le nombre d'années pour le prêt * Calculer les paiements mensuels avec la formule suivante * * M = L[i(1+i)n] / [(1+i)n-1] * M = Paiement Mensuel * L = Montant du Prêt * I = Taux d'Intérêt (pour un taux d'intérêt de 5%, i = 0.05 * N = Nombre de Paiements
Ce programme ne parvient pas à calculer soit simple ou composé d'intérêt. Il également ne pas fournir une période de composition, Elle aussi affiche à tort que le total de vos frais sera, de ne pas soustraire le montant du prêt. C'est aussi simplement diviser votre taux d'intérêt par votre nombre de paiements pour obtenir un montant du paiement mensuel, et ne pas utiliser une formule pour intérêt simple ou composé. Vous vraiment ne pas mettre en œuvre le commentaire sur la formule correctement, vous voudrez peut-être prendre un autre regard sur ce.
Qui dépend de l'hypothèque du vendeur petits caractères où ils disent exactement ce qu'ils veulent dire par "taux d'intérêt annuel" 🙂 brut (mais pas vraiment correcte) manière de gérer ça serait de diviser le taux d'intérêt annuel de 12. Un peu mieux serait d'utiliser quelque chose comme monthly_rate = (1 + annual_rate)**(1/12.) - 1.

OriginalL'auteur BeerHuntor | 2015-04-22