在 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" 并让人们看到正在发生的事情。
请告诉我如何将 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" 并让人们看到正在发生的事情。