Python fails on math
Ian
hobson42 at gmail.com
Tue Feb 22 08:48:41 EST 2011
More information about the Python-list mailing list
Tue Feb 22 08:48:41 EST 2011
- Previous message (by thread): Python fails on math
- Next message (by thread): Python fails on math
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 22/02/2011 13:20, christian schulze wrote: > Hey guys, > > I just found out, how much Python fails on simple math. I checked a > simple equation for a friend. > > [code] >>>> from math import e as e >>>> from math import sqrt as sqrt >>>> 2*e*sqrt(3) - 2*e == 2*e*(sqrt(3) - 1) > False > [/code] > > So WTF? The equation is definitive equivalent. (See http://mathbin.net/59158) > > PS: > > #1: >>>> 2.0 * e * sqrt(3.0) - 2.0 * e > 3.9798408154464964 > > #2: >>>> 2.0 * e * (sqrt(3.0) -1.0) > 3.979840815446496 > > I was wondering what exactly is failing here. The math module? Python, > or the IEEE specifications? > > -- What has failed you is your understanding of what floating point means. Both sides of your equation contain e which is an irrational number. No irrational number and many rational ones cannot be expressed exactly in IEEE format. (1/3, 1/7) All that has happened is that the two sides have come out with very slightly different approximations to numbers that they cannot express exactly. Regards Ian
- Previous message (by thread): Python fails on math
- Next message (by thread): Python fails on math
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list