如何将数字舍入为10,100,1000,10000,100000

Mat*_*Cao -1 python integer roundup

我想要一个函数,如果它小于10,则将数字舍入为10,如果它在10到1000之间,则舍入为100,依此类推.

这将有助于数字连接问题,所以我不必将数字转换为str和back.

def roundup(n):
    if n < 0: return 0
    if n < 10: return 10
    if n < 100: return 100
    if n < 1000: return 1000
    if n < 10000: return 10000
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种自然的方法来做到这一点,而不只是将'if'放在一起

Vic*_*ral 6

这更像是一个数学问题,而不是一个特定于python的问题,但你实际上是在记录一个数字的日志.

def round_base_10(x):
    if x < 0:
        return 0
    elif x == 0:
        return 10
    return 10**math.ceil(math.log10(x))
Run Code Online (Sandbox Code Playgroud)