35

Python中有一个函数可以让我向下舍入到最接近的整数倍数吗?

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

我认真地看着 SO,没有发现与四舍五入最近的基数有关的东西。在发布相关问题的链接或标记为重复之前,请记住这一点。

4

3 回答 3

88
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
于 2012-10-26T07:33:21.503 回答
2

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

def round_down(m, n):
    return m // n * n

很简单。

于 2021-08-05T01:42:53.437 回答
1

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

from math import floor


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

ceil如果您也想定义一个相应的总是舍入函数,可以做类似的事情(?)

于 2018-09-19T15:47:01.833 回答