不是使用math.floor,而是为我编写一个舍入函数。我的想法是: 测试是否为数字→数字是否为正→小数部分> = 0.5→是,打印[round(number)-1],否则打印[round(number)]
我基本上有两个问题。 首先是如何测试输入是正还是负? 第二个是如何使用if / elif / else编写多个语句。因为我有两层条件,所以我不知道该用什么。
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
#2 is input positive?
#3 s > 0+ decimal >= 0.5;
if s > 0:
if s - round(s) < 0:
print (round(s) - 1)
else:
print(round(s)) #decimal < 0.5
else: # s < 0 + decimal >= 0.5
if s - round (s) > 0:
print (round(s) + 1)
else: # decimal < 0.5
print (round(s))
我希望四舍五入。
答案 0 :(得分:1)
int
函数会截断一个十进制数字,使您可以舍入到下一个整数。
def round_down(x):
return int(x)-1 if x < 0 else int(x)
round_down(3.5) # 3
round_down(-4.6) # -5