Я бег этой программы:Python - найти ежемесячный ЧПС кредитной карты
balance = 320000
annualInterestRate = 0.2
monthlyPayment = 0.0
monthlyInterestRate = annualInterestRate/12
low = balance/12.0
high = ((balance * ((1.0 + monthlyInterestRate)**12.0))/12.0)
monthlyPayment = (high+low)/2
while balance != 0:
newBalance = balance
for x in range(1, 13):
lastMonthBalance = newBalance - monthlyPayment
newBalance = lastMonthBalance + ((monthlyInterestRate) * lastMonthBalance)
if -0.002 <= newBalance <= 0.002:
balance = 0
if newBalance < 0.0:
low = 0
high = monthlyPayment
elif newBalance > 0.0:
low = monthlyPayment
monthlyPayment = (low + high)/2
print "Lowest Payment: %.2f" % monthlyPayment
Первоначально я пытался найти ежемесячный платеж, который сделал бы мой NewBalance равен 0, однако из-за ограничения по времени обработки, Я выбрал менее точный подход.
Однако, когда я изменяю границы от -0,2/0,2 до -0,002/0,002, мой ответ меняется с 14578,55 до 29157,09, и я не понимаю, почему?
Любая помощь приветствуется.
С быстрым взглядом, если проценты рассчитаны и начисляются ежемесячно, тогда 'ежемесячныйInterestRate = yearInterestRate/12' будет неправильным способом расчета месячной ставки. – shuttle87
Да, действительно. Однако эта программа не предназначена для правильной финансовой работы, а для того, чтобы научить меня программированию. :-) –