2016-10-16 36 views
0

t是兩個float64數字的數組。 論IPython的2.7打字t,這是給下面的輸出:打印一個數字,並在ipython解釋器中寫入不同的輸出

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') 

爲output.Why是它發生呢?

+0

'print'使用'str'格式,普通的交互式'out'使用'repr'版本。最重要的是'array'('numpy'?)和Python浮動的不同顯示約定。 – hpaulj

回答

0

我認爲你遇到的問題是因爲在某些數據格式中無法近似某些值。 (你不能表現出1/3,因爲你只會有0.3333333333333以同樣的方式...永遠)有更多信息here

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