You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现复利计算的代码存在问题,该如何修复?

复利计算代码修复方案

现有代码问题

  • 误用整数除法//:rate//100会直接丢弃利率小数部分,例如4.5%利率运算结果为0,直接导致逻辑失效;末尾的//lastmoney也会错误丢弃计算结果的小数部分,得到完全错误的年数。
  • 复利公式不符合数学定义:当前逻辑完全偏离复利计算规则,正确的复利增长公式为 最终资产 = 初始本金 * (1 + 年利率/100) ** 年数,求解达标年数需要使用对数推导,而非现有代码中的乘法除法逻辑。
  • 缺少边界判断:未处理初始本金已经大于等于目标金额的场景。

修复后代码

import math

def compound_interest(money, lastmoney, rate):
    # 初始本金已达标直接返回0年
    if money >= lastmoney:
        return 0
    # 对数推导所需年数
    required_year = math.log(lastmoney / money) / math.log(1 + rate / 100)
    # 向上取整,不满1年按完整1年计算收益
    return math.ceil(required_year)

# 接收用户输入
money = float(input('初始本金: '))
rate = float(input('年利率(%): '))
lastmoney = float(input('目标金额: '))

amountyear = compound_interest(money, lastmoney, rate)
print(f"所需年数: {amountyear}")

效果验证

输入初始本金10000、年利率5、目标金额20000,输出结果为15,符合72法则的估算结果(5%复利翻倍约需14.4年,向上取整为15年)。

内容的提问来源于stack exchange,提问作者user17097848

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:09:00