我试图在python中循环整数.我查看了内置的round()函数,但它看起来像是浮点数.
我的目标是将整数舍入到10的最接近的倍数.即: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
Run Code Online (Sandbox Code Playgroud)
这是实现我想要实现的目标的最佳方式吗?是否有内置功能可以做到这一点?另外,如果这是最好的方法,那么我在测试中遗漏的代码有什么问题吗?
dat*_*ata 123
实际上,你仍然可以使用圆函数:
>>> print round(1123.456789, -1)
1120.0
Run Code Online (Sandbox Code Playgroud)
这将舍入到10的最接近的倍数.对于100,将-2作为第二个参数,依此类推.
Mar*_*nen 28
round()可以取位数的小数和负数,小数位于小数点的左侧.返回值仍然是一个浮点数,但一个简单的转换修复了:
>>> int(round(5678,-1))
5680
>>> int(round(5678,-2))
5700
>>> int(round(5678,-3))
6000
Run Code Online (Sandbox Code Playgroud)