我正在开发一个项目,我必须编写一段代码来计算客户退休时的储蓄:
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 True
savings_calculator(10000, 20, 0.1) == 572749.99 返回 false,因为四舍五入返回错误的值
最佳答案
如果您不在每次迭代时进行舍入,而只在最后进行舍入,您应该得到正确的答案:
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
舍入本质上是通过降低精度引入了小误差。经过多次迭代后,此错误会累积起来,因此应仅在最后进行舍入。
关于python - 构建函数 saving_calculator(PMT, n, i )` that calculates your customer' s 退休时的储蓄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52820251/