Python:由更大的数字划分

时间:2014-03-05 19:06:54

标签: python

print 1/50

结果为舍入零:0

print float(1/50)

再次返回零但是作为浮动。

我应该使用什么语法来仅使用库存模块获得正确的结果(0.02)。

3 个答案:

答案 0 :(得分:6)

这一行:

print float(1/50)

执行1/50的整数除法,然后将其转换为浮点数。这是错误的顺序,因为整数除法已经丢失了小数值。

您需要在分割之前以下列方式之一投射到第一 <:>

float(1)/50
1./50

答案 1 :(得分:6)

当您编写print float(1/50)时,Python首先计算1/50的值(即0),然后将其转换为浮点数。这显然不是你想要的。

以下是一些方法:

>>> print float(1)/50
0.02
>>> print 1/float(50)
0.02
>>> print float(1)/float(50)
0.02
>>> print 1./50
0.02
>>> print 1/50.
0.02
>>> print 1./50.
0.02

答案 2 :(得分:6)

可替换地:

>>> from __future__ import division
>>> 1/50
0.02

默认情况下在Python 3中启用