我有一个数组:
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保留数字的最好方法是什么?
答案 0 :(得分:4)
a[0]
确实等于完全扩展。 print语句将其截断(使用str
)用于显示目的。
以下代码可能会使此更清晰。特别是,它解释了在a
的元素上打印a[0]
和str(a)
- repr
来电str
(不是a
)之间的差异:
>>> 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
答案 1 :(得分:3)
您可以使用:
print '%.15f' % a[0]
>> 0.313767818199811
小数点后会显示15位数。
答案 2 :(得分:0)
您可能需要repr()
,print
使用str()
,因此您的输出会被截断:
In [13]: repr(a[0])
Out[13]: '0.313767818199811'
In [14]: repr(a[1])
Out[14]: '0.169656461527218'
答案 3 :(得分:0)
使用格式:print '%.17f' % a[0]
表示17位数字。如果你再次遇到麻烦,请谷歌'python float print precision'