有没有可以像下面这样舍入的内置函数?
10 -> 10 12 -> 10 13 -> 15 14 -> 15 16 -> 15 18 -> 20
我不知道 Python 中的标准函数,但这对我有用:
def myround(x, base=5): return base * round(x/base)
很容易看出为什么上述方法有效。您要确保您的数字除以 5 是一个整数,并正确四舍五入。所以,我们首先做那个 ( round(x/5)),然后因为我们除以 5,所以我们也乘以 5。
round(x/5)
我通过给它一个base参数使函数更通用,默认为 5。
base
在 Python 2 中,float(x)需要确保进行/浮点除法,并且需要最终转换int为,因为round()在 Python 2 中返回浮点值。
float(x)
/
int
round()
def myround(x, base=5): return int(base * round(float(x)/base))