我有一个浮点数,我想要舍入到整数,但总是向上舍入(其中'向上'意味着更大)
例如,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 )
,这似乎也有些过分
答案 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