2016-10-16 6 views
0

tは2つの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]) 

は、それがそう起こっているoutput.Whyとして

Decimal('60.21112699999999762212610221467912197113037109375') 

を与えますか?

+0

'print'が使用するかもしれませんがあります'str'形式で、普通のインタラクティブな'out'は' repr'版を使います。それに加えて、 'array'(' numpy'?)とPythonが浮動するためのさまざまな表示規則を加えてください。 – hpaulj

答えて

0

私はあなたが持っていると思う問題は、いくつかのデータフォーマットでいくつかの値を近似する方法がないためです。 (あなただけ0.3333333333333を持っているでしょうので、あなたが3分の1を表示することができないのと同じ方法...永遠に)詳細here

は便利な機能がrepr()詳細here

関連する問題