Python计算年定存复利资产超指定金额年限 解决while死循环问题
存款年限计算问题修复方案
错误原因排查
- 变量赋值逻辑错误:代码中
D=+A实际等价于D = A,直接覆盖了原本代表固定年存款额的变量D,且没有实现每年新增存入固定本金的逻辑,导致计算完全偏离业务规则 - 资金计算顺序错误:未遵循「每年1月1日先存入当年固定存款,再对全年总资产计息」的规则,且错误将复利计算的本金和固定存款变量混用
- 固定参数被修改:年化利率、年存款额属于固定输入参数,运行过程中不应该被重新赋值,否则会破坏计算基准
正确实现代码
# 输入参数:年化利率、年固定存款额、目标总金额 P = 1.8 # 年化利率 D = 10000 # 每年固定存款额 K = 250000 # 目标总资产 n = 0 # 存款年限 total = 0 # 账户总资产 while total <= K: # 每年1月1日先存入当年固定金额 total += D # 计算当年利息 total = total * (1 + P / 100) # 年限累加 n += 1 print(f"总资产超过{K}元所需年限为:{n}年")
逻辑验证
按题目给出的测试参数计算,首次2020年1月1日存入1万,计息后年末总资产为10180元,2021年1月再存1万后本金为20180元,计息后为20543.24元,以此类推,最终得到的年限结果符合实际复利计算规则,不会出现无限循环问题。
内容的提问来源于stack exchange,提问作者F.O
相关产品推荐
相关产品推荐

