我有一个数组:
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保留数字的最佳方法是什么?
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
您可以使用:
print '%.15f' % a[0]
>> 0.313767818199811
它将在小数点后显示 15 位。
你可能需要repr()
在这里,print
使用str()
所以你的输出被截断:
In [13]: repr(a[0])
Out[13]: '0.313767818199811'
In [14]: repr(a[1])
Out[14]: '0.169656461527218'
使用格式:print '%.17f' % a[0]
17 位数字。如果您再次遇到此问题,请使用 google 'python float print precision'