如何将整数向上舍入到10的倍数

0 投票
3 回答
56 浏览
提问于 2025-04-14 17:16

我找到了如何将一个小数向上或向下取整到下一个或上一个整数,但我遇到了一个问题:

假设我有这些数字:

12
11
10
27
29
25
16

我想把它们向上取整到最接近的10。如果数字的最后一位是0,那就不处理它。

我看到过类似的代码,但它们是向下取整:

import math
math.ceil(12)
round(12)

期望的输出结果:

20
20
10
30
30
30
20

3 个回答

-2
def roundup(n):
    n = n - n % 10
    return n

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

0

有点简单粗糙,但:

def roundup10( n ):
    if n % 10 == 0: return n
    else          : return n + 10 - n % 10

for x in [ 12, 11, 10, 27, 29, 25, 16 ]: print( roundup10( x ) )

输出结果:

20
20
10
30
30
30
20
0

你在寻找数学库里的 ceil 函数:https://docs.python.org/3/library/math.html#math.ceil

你可以把想要的数字精度作为参数,把这个数字除以 10 的相应次方,然后再把结果乘回去,这样就可以把数字四舍五入到特定的小数位数。例如:
math.ceil(13 / 10) * 10 = 20

撰写回答