python - 浮点值

时间:2014-10-17 23:52:02

标签: python floating-point

我有一个函数,我在一个带有float的列表中检查一个值:

             A = 0.00001

             if (array [0] / array[1] < A) :
                      #do something 


              # array is a list with float64 type values and A's type is float

它会在比较中产生任何问题吗? 当我尝试打印A的值时,它显示为1e-05。为什么会这样??我是python的新手。任何人都可以解释我这个。

2 个答案:

答案 0 :(得分:2)

  

比较会产生任何问题吗?

如果a[1]等于零,或者a[0] / a[1]大于最大可表示数字,或者小于最小可表示数字,那么您可能会遇到问题。

比较本身定义明确,几乎与您的想法完全相同。

  

当我尝试打印A的值时,它显示为1e-05。为什么会这样?

这取决于您如何尝试打印A的值。考虑这些打印方式A

In [1]: A = 0.00001

In [2]: print A
1e-05

In [3]: print '%f'%A
0.000010

In [4]: print '%e'%A
1.000000e-05

In [5]: print '%g'%A
1e-05

正如您所看到的,每种打印方式A都打印出不同的A文本表示。但正如10ten0xA都代表相同的数字(我手上的手指数量),每个结果代表相同的数字(将1分成100,000个部分时得到的数字)。

答案 1 :(得分:1)

不,这不是问题。 A默认打印为1e-05,因为当数字非常小或非常大时,使用scientific notation显示它们会更紧凑。