Python - 将一个浮点数向上舍入为整数的最佳方法是什么

时间:2013-06-24 17:11:00

标签: python python-2.7 rounding

我有一个浮点数,我想要舍入到整数,但总是向上舍入(其中'向上'意味着更大)

例如,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 ),这似乎也有些过分

2 个答案:

答案 0 :(得分:4)

  

但代码开始看起来非常严重,内联if语句无处不在(我在多个地方使用此操作)

然后写一个函数:

def myround(flt):
   return math.ceil(flt) if flt > 0.0 else math.floor(flt)

答案 1 :(得分:2)

如果你不想散布“inline if statements where”,你可以定义自己的函数:

def my_rounding(x):
    return math.ceil(x) if x > 0. else math.floor(x)

:d