web-dev-qa-db-ja.com

Python-最も近い10に切り上げる

46という数字を取得し、最も近い10に切り上げたい場合。どうすればPythonでこれを行うことができますか?

46は50になります。

34

math.ceil() を使用して切り上げてから、10倍することができます。

import math

def roundup(x):
    return int(math.ceil(x / 10.0)) * 10

ただ使うには

>>roundup(45)
50
51
Parker

roundは負のndigitsパラメーターを取ります!

>>> round(46,-1)
50

あなたのケースを解決するかもしれません。

88
ch3ka

これを行う1つの方法を次に示します。

>>> n = 46
>>> (n + 9) // 10 * 10
50
14
NPE

これも正しく切り捨てられます:

>>> n = 46
>>> rem = n % 10
>>> if rem < 5:
...     n = int(n / 10) * 10
... else:
...     n = int((n + 10) / 10) * 10
...
>>> 50
7
jvasilakes