1

私は配列を持っています:

a = [0.313767818199811, 0.169656461527218, 0.934219696497667]

私がする時

print a
[0.313767818199811, 0.169656461527218, 0.934219696497667]

print a[0]
0.3137678182

配列内の各数値のすべての桁を保持する必要があります。私はa[0]等しくする必要があります0.313767818199811

数字を保持するようにPythonに指示する最良の方法は何ですか?

4

4 に答える 4

4

a[0]完全な拡張と同じです。printステートメントはstr、表示目的で(を使用して)切り捨てています。

次のコードはこれをより明確にするかもしれません。特に、 :の要素に対する印刷aa[0]str(a)呼び出しrepr(ではない)の不一致について説明します。stra

>>> str(a)
'[0.313767818199811, 0.169656461527218, 0.934219696497667]'
>>> str(a[0])
'0.3137678182'

>>> repr(a)
'[0.313767818199811, 0.169656461527218, 0.934219696497667]'
>>> repr(a[0])
'0.313767818199811'

上記のコードで提案されているように、a[0]次のように完全な精度で表示できます。

>>> print repr(a[0])
0.313767818199811
于 2012-11-08T08:24:45.893 に答える
3

次を使用できます。

print '%.15f' % a[0]
>> 0.313767818199811

小数点以下15桁で表示されます。

于 2012-11-08T08:26:09.477 に答える
0

repr()ここで必要になる場合があります。出力が切り捨てられるようにprint使用します。str()

In [13]: repr(a[0])
Out[13]: '0.313767818199811'

In [14]: repr(a[1])
Out[14]: '0.169656461527218'
于 2012-11-08T08:25:59.730 に答える
0

書式設定を使用:print '%.17f' % a[0]17桁の場合。これで再び問題が発生した場合は、google'python float printprecision'

于 2012-11-08T08:26:42.277 に答える