balance = int(100)
balance *= 0.05 + balance
balance *= 0.05 + balance
balance *= 0.05 + balance
print (int(round ( balance, '.2f' )))
我试图计算3年复利后100美元的利息。
我最初尝试过
balance = 100
balance *= 0.05 + balance
balance *= 0.05 + balance
balance *= 0.05 + balance
print (format( balance, '.2f' ))
但是我的格式导致答案是万亿而不是5位浮点数。
答案 0 :(得分:2)
您正在乘以余额。试试这个:
balance = int(100)
balance = balance * 0.05 + balance
balance = balance * 0.05 + balance
balance = balance * 0.05 + balance
print("{:.02f}".format(balance))
答案 1 :(得分:0)
您的运算符优先级不正确:赋值运算符为 last 。因此,您要做的就是
balance = balance * (0.05 + balance)
相反,请尝试一种表达兴趣的规范方法:
rate = 0.05
balance += balance * rate
或
balance *= (1 + rate)
不需要括号,但是可以帮助您阅读。
此外,您可以为重复设置一个参数(变量):
limit = 3
for year in range(limit):
balance *= 1 + rate
print("{:.02f}".format(balance))
答案 2 :(得分:0)
您应注意操作顺序。 balance *= 0.05 + balance
将0.05
和balance
相加,然后再乘以balance
。您想要的是balance = balance + balance * 0.05
或balance = balance * 1.05
。
您可以创建一个函数来计算复利,以使其更容易:
def comp_int(balance, rate, years):
return balance * (1 + rate)**years
balance = 100
rate = 0.05
years = 3
new_bal = comp_int(balance, rate, years)
print(f'{new_bal:.2f}')