所以我注意到了:
print type(1/2)
返回一个整数,但不应该是浮点数吗?
答案 0 :(得分:7)
尝试type(1/2.0)
,这将返回浮动。其中一个数字必须是浮点值才能获得浮点数的返回值。
Python-2.x除法运算符遵循 Classic Division 。当呈现整数操作数时,经典除法截断小数位,返回一个整数(也称为地板除法)。当给定一对浮点操作数时,它返回实际的浮点商(也就是真正的除法)。
示例:
>>> 1 / 2 # integer truncation (floor division)
0
>>> 1.0 / 2.0 # returns real quotient (true division)
0.5
在Python 3.x中,除法的工作方式不同。 type(1/2)
将返回float类型。 Python-3.x除法运算符遵循 True Division 。
答案 1 :(得分:0)
在Python 2x中,没有remainder/divider
的分区添加到quotient =>地板部门
如果您想强制2x返回true division
(remainder/divider
添加到商中),请尝试。
>>>from __future__ import division
>>>2/3
>>>0.6666666666666666
但如果您需要支持之前的行为(即场内分割),请尝试
>>>2//3
>>>0
在Python 3x中出现真正的分裂 -