Python 2.7.5 打印浮点数列表错误

Python 2.7.5 error printing list of float numbers

我试图从这里回答一个问题 ()。原始问题有两个带有浮点值的不同列表,目标是压缩它们并减去

这段代码工作正常:

Enter=[7.12, 7.14, 7.24, 7.45, 7.28, 7.31, 7.18, 7.25, 7.33, 7.38]
Leave=[7.56, 7.24, 7.48, 7.52, 7.45, 7.57, 7.22, 7.31, 7.37, 7.41]
intervals = map(lambda x, y: y-x, Enter, Leave)

然后:

print intervals

输出:

[0.4399999999999995, 0.10000000000000053, 0.24000000000000021, 0.069999999999999396, 0.16999999999999993, 0.26000000000000068, 0.040000000000000036, 0.059999999999999609, 0.040000000000000036, 0.030000000000000249]

这对我来说真的很奇怪。并尝试了这个:

print intervals[0]

输出:

0.44

最后:

for i in intervals:
    print i

输出:

0.44
0.1
0.24
0.07
0.17
0.26
0.04
0.06
0.04
0.03

那么问题来了。为什么一个一个地打印浮动值打印出正确的值,而打印整个列表却没有?

请注意,我正在使用 Live Sympy 对其进行测试(Live Sympy,此处未安装 python),它运行 Python 2.7.5

打印方法格式化浮点数,但是当您打印列表时,它不会格式化其内部值并按原样打印。

    >>> print(intervals[0])   <== formatting is done by print here
    0.44
    >>> intervals[0]
    0.4399999999999995

    >>> print (type(intervals))
    <type 'list'>
    >>> print (type(intervals[0]))
    <type 'float'>