建立一个功能Saving_calculator(PMT,n,i)`来计算客户退休时的储蓄

时间:2018-10-15 15:39:35

标签: python python-3.x

我当时正在从事一个项目,如果我不得不编写一个代码来计算客户退休时的储蓄:

def savings_calculator(PMT, n, i):
    FV = 0
    for j in range(n):
        interest = FV * i
        FV = FV + interest
        FV = FV + PMT
        FV = round(FV,2)
    return FV

问题是一旦我完成FV,我有时会得到错误的值

下面的测试用例应该返回true:

savings_calculator(20000,15,0.1)== 635449.63是

savings_calculator(10000,20,0.1)== 572749.99这会返回false,因为四舍五入会返回错误的值

1 个答案:

答案 0 :(得分:1)

如果您没有在每次迭代中都取整,而仅在最后一次进行,您应该得到正确的答案:

def savings_calculator(PMT, n, i):
    FV = 0 
    for j in range(n):
        interest = FV * i 
        FV = FV + interest 
        FV = FV + PMT

    FV = round(FV,2)

    return FV

舍入本质上通过降低精度引入了一个小的误差。在许多迭代中,此错误加起来,因此舍入只能在最后完成。