Python没有显示小数

时间:2012-09-07 14:06:22

标签: python

Python表现出一种奇怪的行为,我之前没有见过,不知道我做了什么或发生了什么,但基本上它不会在带有小数的shell中运行 如果我输入简单的

>>> 2/3
0
>>> 3/2
1

如果我尝试通过%或format()格式化它也不会做太多,基本上它只是不识别任何小数

>>> a =2/3
>>> a
0
>>> format(a, '.5f')
'0.00000'

我需要一个简单的部门来检查我的代码,突然之间我遇到了像这样的事情。

我使用Python 2.7

3 个答案:

答案 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之类的东西,因此将使用浮点运算。