是否有一个内置函数可以像下面这样舍入?

10 -> 10
12 -> 10
13 -> 15
14 -> 15
16 -> 15
18 -> 20

当前回答

的值加上0.5,可以“欺骗”int()使其舍入而不是舍入 传递给int()的数字。

其他回答

另一种方法(不需要显式的乘法或除法运算符):

def rnd(x, b=5):
    return round(x + min(-(x % b), b - (x % b), key=abs))

divround的修改版本:-)

def divround(value, step, barrage):
    result, rest = divmod(value, step)
    return result*step if rest < barrage else (result+1)*step

那么这个呢:

 def divround(value, step):
     return divmod(value, step)[0] * step

我需要四舍五入到前面的5。

举个例子,16发到15发或者19发到15发

下面是使用的代码

    def myround(x,segment):
        preRound = x / segment
        roundNum = int(preRound)
        segVal = segment * roundNum
        return segVal

我想还没有人写过这个,但你可以这样做:

round(12, -1) --> 10
round(18, -1) --> 20