在Python中,我试图将整数除以一半,并根据数字的符号得出两个不同的结果。
示例:
5/2 gives 2
and
-5/2 gives -3
当我划分-5/2时如何获得-2?
答案 0 :(得分:2)
你应该将分词括在表达式中,如下所示
>>> import math
>>> int(math.ceil(-5/float(2)))
-2
答案 1 :(得分:1)
这是因为python舍入整数除法。以下是一些例子。在python中,operator('Opacity', 'Assign', Math.round( (1 - opacity) * 100 ) + '%')
类型是更强大的类型,涉及float
和float
的表达式评估为int
。
float
为了绕过四舍五入,你可以利用这个属性;而是使用>>> 5/2
2
>>> -5/2
-3
>>> -5.0/2
-2.5
>>> 5.0/2
2.5
>>> -5//2
-3
进行计算,以免失去精确度。然后使用math module返回该数字的上限(然后再转换为 - > int ):
float
答案 2 :(得分:1)
您需要使用浮点除法,然后使用int
截断小数
>>> from __future__ import division
>>> -5 / 2
-2.5
>>> int(-5 / 2)
-2
在Python 3中,浮点除法是默认值,您不需要包含from __future__ import division
。或者,您可以手动将其中一个值设置为浮点以强制浮动除法
>>> -5 / 2.0
-2.5
答案 3 :(得分:1)
> int(float(-5)/2)
-2
> int(float(5)/2)
2
答案 4 :(得分:0)
>>> import math
>>> math.ceil(float(-5)/2)
-2.0