打印一个数字并在ipython解释器中写入会产生不同的输出

时间:2016-10-16 15:17:28

标签: python python-2.7 ipython

t是两个float64个数字的数组。 在Ipython 2.7中输入t时,它提供以下输出:

array([ 60.211127, 71.08120185])

print t给出了

[ 60.211127, 71.08120185]

print t[0]给出了

60.211127

...但 t[0]给出了

60.211126999999998

作为输出。

P.S。

from decimal import *
Decimal(t[0])

给出

Decimal('60.21112699999999762212610221467912197113037109375')

作为输出。为什么会这样呢?

1 个答案:

答案 0 :(得分:0)

我认为您遇到的问题是因为无法在某些数据格式中逼近某些值。 (同样的方式,你可以显示1/3因为你只有.3333333333333 ...永远)还有更多的信息here

有用的功能可能是repr()更多信息here