如何在Python 2.7中分割两个数字并获得带小数的结果?
我不明白为什么会有差异:
Python 3中的:
>>> 20/15
1.3333333333333333
Python 2中的:
>>> 20/15
1
这实际上不是模数吗?
答案 0 :(得分:99)
在python 2.7中,如果输入是整数,则/
运算符是整数除法。
如果你想要浮点除法(这是我总是喜欢的),只需使用这个特殊的导入:
from __future__ import division
在此处查看:
>>> 7 / 2
3
>>> from __future__ import division
>>> 7 / 2
3.5
>>>
使用//
实现整数除法,使用%
>>> 7 % 2
1
>>> 7 // 2
3
>>>
修改强>
如user2357112
所述,此导入必须在任何其他正常导入之前完成。
答案 1 :(得分:40)
在Python 3中,/
是浮动分割
在Python 2中,/
是整数除法(假设int
输入)
在2 和 3中,//
是整数除法
(要在Python 2中获得浮点除法,要求其中一个操作数为浮点数,可以是20.
或float(20)
)
答案 2 :(得分:14)
在Python 2.x中,确保float
中至少有一个分区的操作数。您可以通过以下示例实现此目的的多种方式:
20. / 15
20 / float(15)
答案 3 :(得分:9)
“/”是python 2中的整数除法,因此它将舍入为整数。如果要返回小数,只需将其中一个输入的类型更改为float:
float(20)/15 #1.33333333