Python - 将浮点数四舍五入为整数的最佳方法是什么

Bre*_*ent 2 python rounding python-2.7

我有一个浮点数,我想将其四舍五入为整数,但总是向上舍入(其中“向上”表示幅度更大)

例如,4.2 将四舍五入为 5,-4.2 将四舍五入为 -5.0

是否有一种内置于 Python 中的好方法来做到这一点?如果没有,您会推荐什么作为执行此操作的最有效方法?

最初我只是使用math.ceil(), 直到我意识到math.ceil(4.2)给出 5,而math.ceil(-4.2)给出 -4,这不是我想要的。

解决这个问题的一种方法是使用ceil正数和floor负数,但是代码开始看起来非常糟糕,到处都是内联 if 语句(我在多个地方使用这个操作)

另一种可能性可能是类似的东西math.copysign( math.ceil( abs( x ) ), x ),这似乎也有点过分

mgi*_*son 5

但是代码开始看起来非常糟糕,到处都是内联 if 语句(我在多个地方使用这个操作)

然后写一个函数:

def myround(flt):
   return math.ceil(flt) if flt > 0.0 else math.floor(flt)
Run Code Online (Sandbox Code Playgroud)