|
|
|
|
|
by commenter23
3577 days ago
|
|
The point the article makes on comparing floating point values and the floating point type is true, but it's not because of any rounding error. It's because the comparison operators are defined for every value. That is, "True < []" is valid in Python 2.7, along with any other 2 values, regardless of type. This is a surprising instance of weak typing in Python, which is otherwise strongly typed, which is why this was fixed in Python 3 (https://docs.python.org/3.0/whatsnew/3.0.html#ordering-compa...). This is also not a case of Python doing something useful, like with '"foo"*2'. The result of the comparison is defined, but it's not useful. I suppose it was useful for making sure that you can always sort a list, but there are better ways to do that. |
|
Do you mean this example? (it's the only one I can find about floating point comparison)
> 2.2 * 3.0 == 3.3 * 2.0
It's definitely due to accuracy error. (rather than type comparison) How would you explain it otherwise?