开发者

float deviation in python list [duplicate]

开发者 https://www.devze.com 2023-04-04 04:45 出处:网络
This question already has answers here: Closed 11 year开发者_JAVA百科s ago. Possible Duplicate: Python float - str - float weirdness
This question already has answers here: Closed 11 year开发者_JAVA百科s ago.

Possible Duplicate:

Python float - str - float weirdness

I run the following code in python on codepad.org:

num = 1.6
print num
list = [num]
print list
num2 = list[0]
print num2

And I get the following output:

1.6
[1.6000000000000001]
1.6

Why the tiny deviation in the list?


list.__str__ calls repr on its elements, where as print calls str:

>>> str(1.6)
'1.6'
>>> repr(1.6)
'1.6000000000000001'

Since floating point numbers are not guaranteed to be exact (and cannot be exact for values that can't be expressed as a * 2b for integers a,b), both representations are correct, or, in other words:

>>> 1.6 == 1.6000000000000001
True
0

精彩评论

暂无评论...
验证码 换一张
取 消