首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python的复合利息产生不正确

python的复合利息产生不正确
EN

Stack Overflow用户
提问于 2021-03-20 12:27:57
回答 2查看 51关注 0票数 0

1,500,000 5%的1,000,000%的复合利息(我用1年作为测试)应该是75,000。但是在python中,使用这个原理= 1500000,速率= 5,时间=1的公式:

代码语言:javascript
复制
Amount = principle * pow(1+rate/100, time)

我得到: 76,515.08

为什么数字1,515.08比它应该高呢?

以下是整个程序:

代码语言:javascript
复制
def compound_interest(principle, rate, time):

principle=int(principle)
rate=int(rate)
time=int(time)
Amount = principle * pow(1+rate/100, time)
CI = Amount - principle
return CI

print("Amount to start?")
a = float(input())
print("Years?")
y = float(input())
print("Rate as percentage?")
r = float(input())

c = compound_interest(a,y,r)
t = a + c
print("Starting value: " + "${:,.2f}".format(a))
print("Compound interest: " + "${:,.2f}".format(c))
print("New principle: " + "${:,.2f}".format(t))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-20 13:05:46

问题是,您在调用compound_interest时出现了错误的论点。

应该有:

代码语言:javascript
复制
c = compound_interest(a,r,y)

而不是:

代码语言:javascript
复制
c = compound_interest(a,y,r)

附带注意:在功能中,compound_interest数字已经浮动,因此应该删除:

代码语言:javascript
复制
principle=int(principle)
rate=int(rate)
time=int(time)

否则,你就无法处理5.5年或1.5年的利息。

票数 1
EN

Stack Overflow用户

发布于 2021-03-20 12:36:36

括号不对。

我得到了1575000.0

代码语言:javascript
复制
amount = principle * pow(1 + rate/100, time)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66721580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档