小编典典

在 Python 中舍入到 5(或其他数字)

all

有没有可以像下面这样舍入的内置函数?

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

阅读 86

收藏
2022-06-14

共1个答案

小编典典

我不知道 Python 中的标准函数,但这对我有用:

蟒蛇 3

def myround(x, base=5):
    return base * round(x/base)

很容易看出为什么上述方法有效。您要确保您的数字除以 5 是一个整数,并正确四舍五入。所以,我们首先做那个 ( round(x/5)),然后因为我们除以
5,所以我们也乘以 5。

我通过给它一个base参数使函数更通用,默认为 5。

蟒蛇2

在 Python 2 中,float(x)需要确保进行/浮点除法,并且需要最终转换int为,因为round()在 Python 2
中返回浮点值。

def myround(x, base=5):
    return int(base * round(float(x)/base))
2022-06-14