我一直在尝试将任何数字四舍五入到最接近的5的倍数。要说的是,我的意思是它应该总是四舍五入。但是,我的代码总是根据我输入的数字向上或向下四舍五入到最接近的5的倍数。数字始终是int
和整个数字。这是我的代码:
num = int(input())
base = 5
for x in range(num):
number = int(input())
round_off = base * round(number/base)
print(round_off)
输入和输出:
in:4
in:73
out:75 #correct
in:67
out:65 #wrong, should be 70
in:38
out:40 #correct
in:33
out:35 #correct
如您所见,只有67或其他类似的东西(如57)会给我错误的输出。如何修复代码以获得正确的输出?
答案 0 :(得分:1)
您需要始终四舍五入 :
import math
round_off = base * math.ceil(number / base)
答案 1 :(得分:0)
如果您始终想四舍五入,可以:
num = int(input())
if num % 5 != 0:
num += 5
num -= (num % 5)
如果您想要一支班轮:
num = num if num % 5 == 0 else num + 5 - (num % 5)
注意:两个示例都使用通用整数base
而不是5:
num = num if num % base == 0 else num + base - (base % 5)