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 に答える