我正在尝试完成一项作业,并且非常接近 python 总是将我的答案向下舍入,而不是在应该的时候向上舍入。 这是我的代码:
startingValue = int(input())
RATE = float(input()) /100
TARGET = int(input())
currentValue = startingValue
years = 1
print("Year 0:",'$%s'%(str(int(startingValue)).strip() ))
while years <= TARGET :
interest = currentValue * RATE
currentValue += interest
print ("Year %s:"%(str(years)),'$%s'%(str(int(currentValue)).strip()))
years += 1
这是我的代码输出的内容: 第 0 年:10000 美元, 第一年:10500美元, 第二年:11025 美元, 第三年:11576 美元, 第四年:12155 美元, 第 5 年:$12762, 第 6 年:13400 美元, 7年级:14071美元, 8年级:14774美元, 9年级:15513美元,
以下是应该输出的内容: 第 0 年:10000 美元, 第一年:10500美元, 第二年:11025 美元, 第三年:11576 美元, 第四年:12155 美元, 第 5 年:$12763, 第 6 年:$13401, 7年级:14071美元, 8年级:14775美元, 9年级:15514美元,
我需要它们匹配,又名四舍五入。有人请帮助我:(
在Python中,
int()
构造函数总是向下舍入,例如
>>> int(1.7)
1
https://docs.python.org/2/library/functions.html#int
如果 x 是浮点数,则转换将截断为零。
如果您想始终四舍五入,您需要:
>>> import math
>>> int(math.ceil(1.7))
2
或四舍五入到最接近的值:
>>> int(round(1.7))
2
>>> int(round(1.3))
1
(参见 https://docs.python.org/2/library/functions.html#round ...这个内置函数返回一个浮点数)
转换为
int
总是会截断;想象一下它砍掉所有小数点。
使用
round()
舍入到最接近的浮点整数。然后使用 int()
将浮点数转换为整数。