46という数字を取得し、最も近い10に切り上げたい場合。どうすればPythonでこれを行うことができますか?
46は50になります。
math.ceil()
を使用して切り上げてから、10倍することができます。
import math
def roundup(x):
return int(math.ceil(x / 10.0)) * 10
ただ使うには
>>roundup(45)
50
round
は負のndigits
パラメーターを取ります!
>>> round(46,-1)
50
あなたのケースを解決するかもしれません。
これを行う1つの方法を次に示します。
>>> n = 46
>>> (n + 9) // 10 * 10
50
これも正しく切り捨てられます:
>>> n = 46
>>> rem = n % 10
>>> if rem < 5:
... n = int(n / 10) * 10
... else:
... n = int((n + 10) / 10) * 10
...
>>> 50