调用类型(1/2)返回整数?

时间:2015-11-19 08:58:58

标签: python python-2.x

所以我注意到了:

print type(1/2) 

返回一个整数,但不应该是浮点数吗?

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 divisionremainder/divider添加到商中),请尝试。

>>>from __future__ import division
>>>2/3
>>>0.6666666666666666

但如果您需要支持之前的行为(即场内分割),请尝试

>>>2//3
>>>0

在Python 3x中出现真正的分裂 -