在Python中将诸如1.23到2之类的数字四舍五入

时间:2016-02-05 02:36:12

标签: python rounding

请告诉我如何在Python中汇总数字。

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

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

3 个答案:

答案 0 :(得分:3)

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

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

如果你想要一个整数,

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

答案 1 :(得分:2)

显然使用math.ceil,但无论如何这里都是一个有趣的选择:

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

更短/更有趣的一个:

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

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

如果你想要一个int(...),请申请int,我会保留这些,因为它们是为了展示"浮点数的整数除法"并保持其可见性。

答案 2 :(得分:0)

您需要使用math天花板功能,即ceil

import math
print math.ceil(1.47)

将产生2.0