如何在python中舍入整数

2024-03-29 11:39:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python对整数进行取整。我看了一下内置的round()函数,但看起来rounds是浮动的。

我的目标是将整数舍入到10的最接近倍数。i、 e.:5->;10、4->;0、95->;100等

5和更高的应该向上取整,4和更低的应该向下取整。

这就是我的代码:

def round_int(x):
    last_dig = int(str(x)[-1])
    if last_dig >= 5:
        x += 10
    return (x/10) * 10

这是实现我想要的最好的方法吗?有没有一个内置的函数可以做到这一点?另外,如果这是最好的方法,那么我在测试中漏掉的代码有什么问题吗?


Tags: 方法函数代码gt目标def整数内置
3条回答

稍微简单一点:

def round_int(x):
    return 10 * ((x + 5) // 10)

round()可以取整数和负数作为小数点的左边。返回值仍然是一个浮点数,但是一个简单的强制转换修复了以下问题:

>>> int(round(5678,-1))
5680
>>> int(round(5678,-2))
5700
>>> int(round(5678,-3))
6000

实际上,您仍然可以使用round函数:

>>> print round(1123.456789, -1)
1120.0

这将是10的最接近倍数。第二个参数是-2,以此类推。

相关问题 更多 >