Я получаю бесконечный цикл при запуске моей программы.Как мне это исправить? - PullRequest
0 голосов
/ 29 мая 2019

Вывод кода Это финансовая проблема, над которой я работал. У меня есть настроенный цикл, но после того, как он отображает все правильные значения, он отображает все «0» для каждой переменной бесконечно. Мои версии Python 3.6.7 работают на Ubuntu.

Я попытался настроить его таким образом, чтобы current_balance был больше, чем final_balance, но проблема все еще там.

price = float(input("Enter initial price: "))
INTEREST_RATE = 0.12 / 12
DOWN_PAYMENT = price * .9
monthly_payment = 0
ending_balance = 0
interest = 0
principal = 0
month = 0

print("%s%18s%10s%11s%9s%13s" % ("Month", "Current Balance", "Interest", "Principal", "Payment", "End Balance"))

month = 1
current_balance = DOWN_PAYMENT
interest = current_balance * INTEREST_RATE
monthly_payment = current_balance * 0.05
principal = monthly_payment - interest
ending_balance = current_balance - principal

while ending_balance > 0:
    print("%d%18.2f%10.2f%11.2f%9.2f%13.2f" % (month, current_balance, interest, principal, monthly_payment, ending_balance))
    month += 1
    current_balance = ending_balance
    interest = current_balance * INTEREST_RATE
    monthly_payment = current_balance * 0.05
    principal = monthly_payment - interest
    ending_balance = current_balance - principal

Нет ошибок, просто бесконечный цикл. Программа должна быть закончена один раз. End_balance = 0.

1 Ответ

1 голос
/ 29 мая 2019

С плавающей точкой ваша проблема.Чтобы завершить цикл, используйте:

while ending_balance >= 0.005:

Текущий баланс всегда уменьшается, но вы показываете только две десятичные цифры.

...