如何用Python实现已知本金、终值和时间求复利利率
计算复利利率的Python实现
基于你已掌握的复利计算逻辑,我们可以通过公式变形来倒推利率。
公式推导
原复利计算公式:
最终金额(A) = 本金(P) × (1 + 年利率(r)/100)^时间(t)
我们需要从A、P、t反求r,变形步骤如下:
- 两边除以本金:
A/P = (1 + r/100)^t - 对两边开t次方:
(A/P)^(1/t) = 1 + r/100 - 整理得到利率公式:
r = 100 × [(A/P)^(1/t) - 1]
实现代码
def compound_interest_rate(principal, final_amount, time): # 校验输入合法性 if principal <= 0: raise ValueError("本金必须大于0") if time <= 0: raise ValueError("时间必须大于0") if final_amount <= 0: raise ValueError("最终金额必须大于0") # 计算利率 ratio = final_amount / principal rate = 100 * (pow(ratio, 1 / time) - 1) return rate # 示例调用 if __name__ == "__main__": p = 10000 a = 16105.1 t = 5 rate = compound_interest_rate(p, a, t) print(f"复利年利率为: {rate:.2f}%") # 输出约10.00%
说明
- 函数会先校验输入合法性,避免除以0或无意义的数值输入
- 使用
pow()函数计算开方,比**运算符在处理大数或分数次方时更稳定 - 返回的利率是百分比形式(如10代表10%),可通过格式化输出控制小数位数
内容的提问来源于stack exchange,提问作者KawaiKx
相关产品推荐
相关产品推荐

