【发布时间】:2012-06-10 08:44:11
【问题描述】:
我必须用1/50000 进行计算。当我这样做时
float(1/50000)
在 python 中它只返回我0.0。如何在 python 中获得 powers 的实际值?我想得到2.5*10^(-5)。
【问题讨论】:
标签: python floating-point division
我必须用1/50000 进行计算。当我这样做时
float(1/50000)
在 python 中它只返回我0.0。如何在 python 中获得 powers 的实际值?我想得到2.5*10^(-5)。
【问题讨论】:
标签: python floating-point division
In [2]: 1.0/50000
Out[2]: 2e-05
注意.0。它确保1.0 是一个浮点字面量,而不是一个整数。
另一种写法如下:
In [3]: float(1)/50000
Out[3]: 2e-05
你现在首先使用整数除法来计算1/50000。此除法的结果是整数0,然后将其转换为浮点值(0.0)。
最后,请注意,您当前的代码将在 Python 3 中正常运行(float() 是多余的)。这是由于PEP 238。
【讨论】:
1./50000 是真正需要的。
使用 python 3.x
>>> 1/50000
2e-05
或在 python 2.x 上
>>> from __future__ import division
【讨论】:
使用1.0/50000 或float(1)/50000。按照您的操作方式,当您转换为浮点数时,除法已经完成,要获得额外的准确性为时已晚。
【讨论】:
输入参数必须是浮点数才能划分为浮点数:
float(1) / float(50000)
或者
1./50000
十进制将 1 转换为浮点数。如果输入值之一是浮点数,则除法运算也将变为浮点数。
您所做的是将整数除以得到 0,然后将 0 转换为浮点数作为 '0.0'。
【讨论】:
只需将其中一个参数转换为 float:
>>> 1 / float(50000)
2e-05
【讨论】: