是否有一个内置函数可以像下面这样舍入?
10 -> 10
12 -> 10
13 -> 15
14 -> 15
16 -> 15
18 -> 20
是否有一个内置函数可以像下面这样舍入?
10 -> 10
12 -> 10
13 -> 15
14 -> 15
16 -> 15
18 -> 20
当前回答
那么这个呢:
def divround(value, step):
return divmod(value, step)[0] * step
其他回答
这只是一个比例的问题
>>> a=[10,11,12,13,14,15,16,17,18,19,20]
>>> for b in a:
... int(round(b/5.0)*5.0)
...
10
10
10
15
15
15
15
15
20
20
20
round(x[, n]):数值四舍五入到10的负n次方的最接近倍数。所以如果n是负的…
def round5(x):
return int(round(x*2, -1)) / 2
由于10 = 5 * 2,您可以对2使用整数除法和乘法,而不是对5.0使用浮点除法和乘法。这并不重要,除非你喜欢位移位
def round5(x):
return int(round(x << 1, -1)) >> 1
的值加上0.5,可以“欺骗”int()使其舍入而不是舍入 传递给int()的数字。
下一个5的倍数
考虑51需要转换为55:
code here
mark = 51;
r = 100 - mark;
a = r%5;
new_mark = mark + a;
def round_to_next5(n):
return n + (5 - n) % 5