【发布时间】:2011-03-21 21:36:55
【问题描述】:
我正在尝试在 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
这是实现我想要实现的目标的最佳方式吗?有没有内置函数可以做到这一点?另外,如果这是最好的方法,那我在测试中遗漏的代码有什么问题吗?
【问题讨论】:
-
您注意到 cobbal 的回答中的
//了吗?最好在这里使用,因为它与 Python3+ 前向兼容,/现在可以返回一个浮点数 -
哦,我还以为是错字。如果我知道我只会使用 python2.6 可以吗?
-
是的。我目前可用的最低版本是 2.3.4,整数除法无需
from __future__ import division语句即可使用。我认为它是在__future__2.2 中首次引入的,但我可能弄错了。 -
@Nathan Ernst,导入相反。
//早就支持了,所以使用起来非常安全。The from __future__ import division更改/的行为以匹配 Python3
标签: python