This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author mark.dickinson
Recipients benjamin.peterson, mark.dickinson, pitrou
Date 2014-10-03.17:28:15
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1412357296.04.0.99642522563.issue22548@psf.upfronthosting.co.za>
In-reply-to
Content
This is not a bug, but a known and difficult-to-avoid issue with signed zeros and creating complex numbers from real and imaginary parts.  The safe way to do it is to use the `complex(real_part, imag_part)` construction.

In the first example, you're subtracting a complex number (0.j) from a float (-0.0).  The float gets promoted to a complex (by filling in an imaginary part of +0.0), and the imaginary literal is similarly treated as a complex number (by filling  in a 0.0 for the real part).  So the subtraction is doing:

  complex(-0.0, 0.0) - complex(0.0, -0.0)

which as expected gives a real part of -0.0, and an imaginary part of +0.0.
History
Date User Action Args
2014-10-03 17:28:16mark.dickinsonsetrecipients: + mark.dickinson, pitrou, benjamin.peterson
2014-10-03 17:28:16mark.dickinsonsetmessageid: <1412357296.04.0.99642522563.issue22548@psf.upfronthosting.co.za>
2014-10-03 17:28:16mark.dickinsonlinkissue22548 messages
2014-10-03 17:28:15mark.dickinsoncreate