[英]Round up numbers such as 1.23 to 2 in Python [duplicate]
请告诉我如何在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
,但是无论如何这是一个有趣的选择:
>>> [-(-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(...)
,我将保留它们,以显示“浮点数的整数除法”并保持其可见状态。
您将要使用math
上限函数,即ceil
:
import math
print math.ceil(1.47)
将产生2.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.