Python:由更大的数字划分

Python: Division by Larger Number

本问题已经有最佳答案,请猛点这里访问。
1
print 1/50

结果舍入为零:0

1
print float(1/50)

再次返回零,但作为浮点数。

我应该使用什么语法来获得正确的结果(0.02),只使用stock模块。


可选地:

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

在python 3中,这是默认启用的。


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

以下是一些方法:

1
2
3
4
5
6
7
8
9
10
11
12
>>> 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


这条线:

1
print float(1/50)

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

在除法之前,您需要先将其强制转换为浮点型,方法如下:

1
2
float(1)/50
1./50