Steven D'Aprano <[email protected]> added the comment:
> I wouldn't trust a language behaving crazy like this
I guess then you won't trust C, Java, C++, Swift, Javascript, Ruby, Cobol,
Fortran, and pretty much every programming language in existence. The only ones
that escape this are ones that don't have floating point numbers at all.
> you haven't tried it on 2.7 did you ?
We know how Python 2.7 works. Some of us have been using Python for 25 years,
since version 1.5 or older. Do you think you are the first person to have
noticed this? There are hundreds of thousands of Python programmers, believe me
you're not the first, or even the ten-thousandth person to have noticed.
Python 2.7 rounds off the default display of floats to make them look "pretty"
instead of displaying their actual value. Try this in 2.7 and see what happens:
i=0
while i < 1.2:
i += 0.1
print "default:", i, "actual: %.24f" % i
The calculations are *precisely* the same, only the display is different.
Honestly Mike, this is not a Python issue, it is universal to all languages
with fixed-size floating point numbers. This is not a bug, it is how numeric
computing works *everywhere*. People write peer reviewed scientific papers
about this:
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.22.6768
https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
If you want to educate yourself on the issue, rather than just rant about not
trusting the language and abuse people who have been using the language for
decades, you could do a lot worse than to start here:
https://randomascii.wordpress.com/2012/05/20/thats-not-normalthe-performance-of-odd-floats/
https://randomascii.wordpress.com/2012/04/05/floating-point-complexities/
and take careful note that the author talks about C, probably the most common,
fundamental and trusted programming language in the world. (Also remember that
when Bruce Dawson talks about floats in C, they are half the precision of
Python floats, which are C doubles.)
The bottom line is that floats are not the infinitely precise exact
mathematical numbers we learn about in school, they are more like the numbers
you get on a calculator.
----------
nosy: +steven.daprano
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue40981>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com