Python每月投资未来值计算器逻辑错误排查求助
每月投资未来值计算程序逻辑错误排查与修正
核心错误分析
- 循环次数缺失:原函数中
range(1, months)的循环范围会少执行一次迭代。以36年为例,总月数是432,但该范围仅生成431个循环项,直接导致少算一个月的投资及对应利息,这是结果偏差的主要原因。 - 冗余利息计算(可优化):原代码中
monthly_interest = (future_value * monthly_interest_rate)-future_value可简化为直接对future_value复利计算,逻辑完全等价且更高效。
修正后的calculate_future_value函数
def calculate_future_value(monthly_investment, yearly_interest, years): # 转换年利率为月利率 monthly_interest_rate = (1 + yearly_interest / 100) ** (1 / 12) months = years * 12 future_value = 0.0 # 修正循环范围,执行满months次 for _ in range(months): future_value += monthly_investment # 直接复利计算,简化逻辑 future_value *= monthly_interest_rate return future_value
验证结果
输入参数:月投资350、年利率10%、年限36年,修正后的程序将输出预期值1484636.15。
内容的提问来源于stack exchange,提问作者jahn sanchez
相关产品推荐
相关产品推荐

