似乎应该已经被问过几百次(双关语很有趣),但我只能找到圆形浮子的功能.如何舍入整数,例如:130 -> 200?
我试图在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)
这是实现我想要实现的目标的最佳方式吗?是否有内置功能可以做到这一点?另外,如果这是最好的方法,那么我在测试中遗漏的代码有什么问题吗?
我将如何设法将math.ceil一个数字分配给 10 的下一个最高幂?
# 0.04 -> 0.1
# 0.7 -> 1
# 1.1 -> 10
# 90 -> 100
# ...
Run Code Online (Sandbox Code Playgroud)
我目前的解决方案是一个检查输入数字范围的字典,但它是硬编码的,我更喜欢单行解决方案。也许我在这里错过了一个简单的数学技巧或相应的 numpy 函数?