Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从数组中调用特定实体时,python舍入数有问题_Python_List_Rounding - Fatal编程技术网

从数组中调用特定实体时,python舍入数有问题

从数组中调用特定实体时,python舍入数有问题,python,list,rounding,Python,List,Rounding,我有一个数组: a = [0.313767818199811, 0.169656461527218, 0.934219696497667] 当我这样做的时候 print a [0.313767818199811, 0.169656461527218, 0.934219696497667] print a[0] 0.3137678182 我需要保留数组中每个数字的所有数字。我需要a[0]等于0.3137678199811 告诉python保留数字的最佳方法是什么?code>a[0]等于完全扩

我有一个数组:

a = [0.313767818199811, 0.169656461527218, 0.934219696497667]
当我这样做的时候

print a
[0.313767818199811, 0.169656461527218, 0.934219696497667]

print a[0]
0.3137678182
我需要保留数组中每个数字的所有数字。我需要
a[0]
等于
0.3137678199811


告诉python保留数字的最佳方法是什么?

code>a[0]等于完全扩展。出于显示目的,print语句正在截断它(使用
str

下面的代码可能会更清楚地说明这一点。特别是,它解释了在
a
的元素上打印
a
a[0]
-
str(a)
调用
repr
(非
str
)之间的差异:

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

a[0]
不等于完全展开。出于显示目的,print语句正在截断它(使用
str

下面的代码可能会更清楚地说明这一点。特别是,它解释了在
a
的元素上打印
a
a[0]
-
str(a)
调用
repr
(非
str
)之间的差异:

>>> 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
您可能需要
repr()
在这里,
print
使用
str()
因此您的输出被截断:

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

In [14]: repr(a[1])
Out[14]: '0.169656461527218'
您可能需要
repr()
在这里,
print
使用
str()
因此您的输出被截断:

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

In [14]: repr(a[1])
Out[14]: '0.169656461527218'
您可以使用:

print '%.15f' % a[0]
>> 0.313767818199811
它将在小数点后显示15位。

您可以使用:

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

它将在小数点后显示15位。

使用格式:
打印“%.17f”%a[0]
17位。如果您再次遇到此问题,谷歌“python浮点打印精度”将使用格式:
打印“%.17f”%a[0]
17位。如果您再次遇到此问题,请使用谷歌“python浮点打印精度”

我无法复制您的问题。请投票支持糟糕的研究。@jvallver:尝试运行以下代码:a=[0.3137678199811,0.169656461527218,0.934219696497667]打印a[0]
repr
返回返回原始
float
的最短字符串,该字符串可以是1到17位,例如
0.100000000000002
需要17位。我无法复制您的issueDeserves否决票,因为研究不好。@jvallver:尝试运行此代码:a=[0.3137678199811,0.1696561527218,0.934219696497667]打印打印[0]
repr
返回返回原始
浮点值的最短字符串,可以是1到17位,例如,
0.100000000000002
需要17位数字。你知道如何让print语句不这样做吗?@user1808562:我刚刚用一种显示完整展开的方式修改了我的答案。@user1808562 just do
print repr(a[0])
看到关于如何让print语句不这样做的想法了吗?@user1808562:我刚刚用一种显示完整展开的方式修改了我的答案。@user1808562只需执行
print repr(a[0])
看到