在 Python 中将 1.23 等数字四舍五入为 2

Round up numbers such as 1.23 to 2 in Python

请告诉我如何将 Python 中的数字四舍五入。

如果我有 1.47,如何四舍五入到 2? 或者如果我有 10.13,如何将它四舍五入到 11?

round(round(1.47, 1)) 的答案是正确的,但是还有其他方法可以将这些数字四舍五入吗?

math 模块中有一个名为 ceil 的函数。

>>> import math
>>> print math.ceil(1.47)
2.0

如果你想要一个整数,

>>> import math
>>> print int(math.ceil(1.47))
2

您需要使用 math 上限函数,即 ceil:

import math
print math.ceil(1.47)

将产生 2.0

显然使用 math.ceil,但这里有一个有趣的替代方法:

>>> [-(-x//1) for x in 1.47, 10.13, 2.0]
[2.0, 11.0, 2.0]

偶数 shorter/funnier 一个:

>>> [0--x//1 for x in 1.47, 10.13, 2.0]
[2.0, 11.0, 2.0]

--0-- x//1,请参阅下面@MarkDickinson 的评论。

如果你想要 int,请应用 int(...),我会保留这些,以展示 "integer division for floats" 并让人们看到正在发生的事情。