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

5 投票
2 回答
8834 浏览
提问于 2025-05-10 15:02

我注意到调用:

print type(1/2) 

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

相关文章:

  • 暂无相关问题
暂无标签

2 个回答

0

在Python 2.x中,除法运算如果不使用remainder/divider,结果会向下取整,也就是我们说的“向下除法”。

如果你想让Python 2.x返回“真实除法”(也就是把remainder/divider加到商里),可以试试下面的方法。

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

但是如果你想恢复之前的行为(也就是向下除法),可以试试这个。

>>>2//3
>>>0

在Python 3.x中,默认就是“真实除法”。

9

试试 type(1/2.0),这个会返回浮点数。要得到浮点数的结果,至少有一个数字得是浮点数。

在Python 2.x中,除法运算符遵循的是经典除法。当两个数字都是整数时,经典除法会去掉小数部分,返回一个整数(也叫向下取整除法)。如果两个数字都是浮点数,它就会返回实际的浮点数结果(也叫真实除法)。

举个例子:

>>> 1 / 2          # integer truncation (floor division)
0
>>> 1.0 / 2.0      # returns real quotient (true division)
0.5

在Python 3.x中,除法的规则变了。type(1/2)会返回浮点数。Python 3.x的除法运算符遵循的是真实除法

撰写回答