Python二分检索超出目标

2024-09-21 01:20:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须创建一个代码,以找到确切的付款,到美分,需要在12个月内还清贷款使用平分。我为此创建的代码可以工作,但它超出了目标。贷款将在12个月内还清,但12次付款后,最终余额应在0左右。然而,这是一个更大的负数。在

我使用的代码是:

StartBalance = float(raw_input('Credit Balance in $: '))
AnnualRate = float(raw_input('Annual interest rate in decimals: '))
MonthlyRate = AnnualRate / 12.0
MinPaymentLow = StartBalance / 12.0
MinPaymentHigh = (StartBalance*(1+MonthlyRate)**12.0)/12.0
cent = 0.01
Payment = (MinPaymentHigh+MinPaymentLow)/2.0

while (Payment*12-StartBalance) >= cent:
    for month in range(0, 12):
        Balance = (StartBalance-Payment)/10*(1+MonthlyRate)   
    if Balance < 0:
        MinPaymentLow = Payment
    elif Balance > 0:
        MinPaymentHigh = Payment
    Payment = (MinPaymentHigh + MinPaymentLow)/ 2.0

print 'RESULT'           
print 'Number of months needed: 12'
print 'Montly pay: $', round(Balance,2)

Tags: 代码ininputrawpaymentfloatcentprint
2条回答

看起来像是这样的线条:

for month in range(0, 12):
    Balance = (StartBalance-Payment)/10*(1+MonthlyRate)   

应该是:

^{pr2}$

或者类似的事情,这取决于你想如何计算利息,以及你是否考虑在月初或月底付款。在

您的代码对我来说似乎运行得很好,但是如果您得到的结果“太差了”,那可能是因为您使用的是float数据类型。Float是不稳定的,因为它对每个操作都进行舍入。经过足够多的迭代,你已经赚了很多钱。请尝试改用^{}。此模块将小数作为索引整数值进行跟踪。在

相关问题 更多 >

    热门问题