2017-07-31 70 views
0

我是python的新手,当我尝试打印保存float值的列表值和字符串在浮点值中打印更多的零时。为什么这种行为在Python中可以请任何人解释。python列表的浮点值打印更多的零

list = ['abcd', 786 , 2.23, 'john', 7.23 ,'Deepak','Umesh'] 
#tinylist = [123, 'john'] 
print list # Prints complete list 

O/P

['abcd', 786, 2.23, 'john', 7.2300000000000004, 'Deepak', 'Umesh'] 

为什么有这么多零的后7.23

+1

你正在使用哪个python版本?? – Kallz

+0

请不要在Python中将'list'用作变量。 –

+0

我正在使用2.6.1版本,但我也在2.7.13中尝试了更多的情况,在这里我添加了两个浮点数。 a = .269720378209382082 b = .368273469247000000 c = a + b且o/p为0.637993847456,这与上述两个值不完全相同。 –

回答

1

Python的未来,就像任何编程语言,不能代表所有的浮点值准确;有时精确的问题会导致你看到的问题。对于任何计算,7.2300000000000004是如此接近7.23,应该没关系。

资源,以了解更多:https://docs.python.org/2/tutorial/floatingpoint.html http://floating-point-gui.de/

此外,它最好不要使用list作为变量名,因为隐藏了内置。

+0

我敢肯定这是一个浮点问题,但是实际的原始代码片段不会产生该输出,至少在我的系统上的Python 2.7中 –

+0

@Chris_Rands输出是否可能取决于硬件/操作系统等?另外,也许OP使用严重旧版本的Python ... – perigon

+0

有没有解决这些问题的解决方法。 –