将整数向下舍入到最接近的倍数

时间:2012-10-26 07:32:36

标签: python

Python中是否有一个函数允许我向下舍入到整数的最接近的倍数?

round_down(19,10)=10
round_down(19,5)=15
round_down(10,10)=10

我认真地查看了SO,发现没有任何内容可以将 down 四舍五入到最近的基地。在发布相关问题的链接或标记为重复之前,请记住这一点。

3 个答案:

答案 0 :(得分:57)

def round_down(num, divisor):
    return num - (num%divisor)

In [2]: round_down(19,10)
Out[2]: 10

In [3]: round_down(19,5)
Out[3]: 15

In [4]: round_down(10,10)
Out[4]: 10

答案 1 :(得分:1)

在相同情况下,我最终使用floor函数执行以下操作。就我而言,我试图将数字四舍五入到最接近的1000。

from math import floor


def round_down(num, divisor):
    return floor(num / divisor) * divisor

如果您还想定义一个对应的总是四舍五入的函数,可以使用ceil做类似的事情

答案 2 :(得分:0)

这可能不是最有效的解决方案,但是

round_down(m, n) = m // n * n

非常简单。