Python连续复利现值计算错误排查求助
现值计算代码的问题修复
你的代码核心问题是变量赋值完全搞反了,看这两行:
years = float(rate) rate = rate
你把rate的值赋给了years,导致后续计算rate * years实际上是rate * rate,完全偏离了公式要求的rate * years,这就是结果错误的根源。
修正后的代码
import math # 先明确变量输入(示例值,可根据实际场景替换) goal = 50000.0 rate = 0.05 years = 5.0 # 正确的变量类型转换(若输入为字符串时使用) goal = float(goal) rate = float(rate) years = float(years) principal = goal / (math.e ** (rate * years)) rounded_principal = round(principal, 2) print(rounded_principal)
验证测试案例
- 当
goal=50000、rate=0.05、years=5时,修正后输出38940.04,符合预期。 - 当
goal=200、rate=0.1、years=1时,修正后输出180.97,符合预期。
注意:如果变量来自外部输入(比如用户输入),要确保先获取正确的goal、rate、years值,再做类型转换,避免赋值混乱。
内容的提问来源于stack exchange,提问作者Federico Olivares
相关产品推荐
相关产品推荐

