整数の最も近い倍数に切り捨てることができるPythonの関数はありますか?
round_down(19,10)=10
round_down(19,5)=15
round_down(10,10)=10
私は誠実にSOを調べましたが、最も近いベースへの切り捨てに関連するものは何も見つかりませんでした。関連する質問へのリンクを投稿したり、重複としてフラグを立てたりする前に、このことを覚えておいてください。
整数の最も近い倍数に切り捨てることができるPythonの関数はありますか?
round_down(19,10)=10
round_down(19,5)=15
round_down(10,10)=10
私は誠実にSOを調べましたが、最も近いベースへの切り捨てに関連するものは何も見つかりませんでした。関連する質問へのリンクを投稿したり、重複としてフラグを立てたりする前に、このことを覚えておいてください。
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
これはおそらく最も効率的な解決策ではありませんが、
def round_down(m, n):
return m // n * n
とてもシンプルです。
floor
同じ状況で、この機能を利用して次のことをしてしまいました。私の場合、数値を1000に最も近い値に切り捨てようとしていました。
from math import floor
def round_down(num, divisor):
return floor(num / divisor) * divisor
ceil
対応する常に切り上げ関数も定義したい場合は、同様のことを行うことができます(?)