整数除以下一个整数

时间:2015-12-10 23:17:13

标签: python python-2.7 python-2.x

如您所知,如果您这样做:

>>> 11/2
# 5

>>> 11/2.0
# 5.5

我想在这种情况下获得6分。我尝试过:

>>> 11//2
# 5

>>> 11//2.0
# 5.0

最后一个给出了prev整数。我想得到下一个整数。 结果就像x.1我想得到(x+1)

我该怎么做?

3 个答案:

答案 0 :(得分:3)

使用math.ceil

>>> import math
>>> math.ceil(11/2.0)
6.0
>>>

答案 1 :(得分:2)

通常比模数和除法工作更有效率,转换地板划分很容易:

x // y

进入ceil分区(与使用math.ceil不同,由于大值的浮点不精确,它不会产生错误结果的风险):

(x + y - 1) // y

如果x完全可以被y整除,则添加y - 1不会改变任何内容;场地划分使最终结果不变。如果它不能被完全整除,那么它会将其增加到下一个倍数以上,只需要一个除法运算而不是两个(划分很昂贵;执行两次是非常昂贵的),并且没有浮点精度问题。

答案 2 :(得分:0)

rounded_up = x // y + bool(x % y)

如果除法产生非零余数,我们加1。这样做的好处是不会引入浮点不精确,因此在math.ceil产生错误答案的极端情况下它是正确的。