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

复利终值计算Python代码出现ZeroDivisionError,请求排查错误

复利终值计算代码错误排查

错误原因分析

你的代码触发ZeroDivisionError: float floor division by zero错误,核心问题及其他问题如下:

  • 复利频率逻辑与类型错误:
    你设置n = int(.25),但0.25转为整数后是0,直接导致后续计算出现除以0的操作。另外,复利频率n的定义是每年计息次数,比如季度复利应为4(每年计息4次),而非0.25,这里完全搞反了逻辑。

  • 利率变量类型错误:
    r = int(3.5/100)会把0.035转为整数0,直接丢失了利率的实际数值,应该保留浮点数类型,去掉int()转换。

  • 变量名与运算符错误:

    • 代码中误用了未定义的r_decimal,实际定义的变量是r;
    • 公式里的普通除法被写成了地板除法//,不符合复利计算逻辑;
    • 乘法语法错误:p(...)和n(integer_years)是函数调用写法,正确的乘法应该是p * (...)和n * integer_years。

修正后的代码

p = 10000  # 初始投资金额
r = 3.5 / 100  # 年利率(保留浮点数)
n = 4  # 季度复利,对应每年计息4次
years = input("请输入投资年限:")
integer_years = int(years)
# 严格按照复利终值公式计算
final_amount = p * (1 + r / n) ** (n * integer_years)
print(f"复利终值为:{final_amount:.2f}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:15:14