Python表现出一种奇怪的行为,我之前没有见过,不知道我做了什么或发生了什么,但基本上它不会在带有小数的shell中运行 如果我输入简单的
>>> 2/3
0
>>> 3/2
1
如果我尝试通过%或format()格式化它也不会做太多,基本上它只是不识别任何小数
>>> a =2/3
>>> a
0
>>> format(a, '.5f')
'0.00000'
我需要一个简单的部门来检查我的代码,突然之间我遇到了像这样的事情。
我使用Python 2.7
答案 0 :(得分:8)
在Python 2中,/
默认执行“整数除法”。如果你把
from __future__ import division
在脚本的顶部,它将执行您想要的划分,这将是Python 3中的默认行为。或者,如果您希望与旧的Python版本兼容(不建议用于新代码),请执行< / p>
2. / 3.
或,带变量
x / float(y)
答案 1 :(得分:3)
a = 2/3。
或
a = 2./3
至少有一个数字需要浮动!
答案 2 :(得分:2)
您只对整数执行操作,这意味着删除了数字的小数部分。您需要2.0/3
之类的东西,因此将使用浮点运算。