强制Python计算为double

gur*_*gui 1 python

我想在Python中打印一个double.但它不起作用,我不知道为什么.

我的代码:

test = 3000 / (1500 * 2000)
print str(test)
Run Code Online (Sandbox Code Playgroud)

如果我做以下事情,我总是得到一个0而不是一个0.001:

test = 3000 / (1500 * 2000)
print '%.10f' % test
Run Code Online (Sandbox Code Playgroud)

我得到了一个0.000000000而不是0.001.

我怎么告诉Python这应该是双倍的?

Ash*_*ary 5

在Python 2.x中,您需要将至少一个操作数转换为float,因为整数除法会导致Python 2.x中的截断输出:

>>> 3000 / (1500 * 2000)
0
>>> 3000.0 / (1500 * 2000) # Or use float(3000)
0.001
>>> float(3000) / (1500 * 2000)
0.001
Run Code Online (Sandbox Code Playgroud)

或者你可以在Python 2.x中导入Python 3.x的分区,其中整数除法导致真正的除法:

>>> from __future__ import division
>>> 3000.0 / (1500 * 2000)
0.001
Run Code Online (Sandbox Code Playgroud)

请注意,这将影响整个模块的划分.

  • 另一种解决方法是"来自运营商进口的truediv; x*truediv(y,z)` (2认同)