Skip to content
Advertisement

Python simple interest calculation

I am trying to calculate how much monthly payment in order to pay off a loan in 12 month. use $10 as incremental.

Payment = 0
balance = float (1200)
interest = float (0.18)
MonthlyInt = interest/12.0

while balance > 0 :

    Payment = Payment + 10
    month = 0
    while month < 12 and balance > 0:
        IntPay = balance* MonthlyInt
        balance += IntPay
        balance -= Payment
        month += 1
print Payment

The correct answer should be 110, why am I getting 60?

Advertisement

Answer

The main things generating the difference are:

  • The balance should be reset to 1200 before looping through the 12 months again
  • The payment should be deducted from the balance before calculating the interest

A couple smaller python things are:

  • float() isn’t needed around numbers like 0.18, it’s already a float
  • 1200. would imply that the number is a float, so float() isn’t needed

Accounting for these things then:

Payment = 0
interest = 0.18
MonthlyInt = interest/12.0
balance = 1200.

while balance > 0 :

    Payment = Payment + 10
    month = 0
    balance = 1200.
    while month < 12 and balance > 0:
        balance -= Payment
        IntPay = balance* MonthlyInt
        balance += IntPay
        month += 1
print(Payment)

gives a result of 110.

User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement