Signed zeros: is this a bug?
Dan Bishop
danb_83 at yahoo.com
Sun Mar 11 12:04:51 EDT 2007
On Mar 11, 9:31 am, "Mark Dickinson" <dicki... at gmail.com> wrote:
> I get the following behaviour on Python 2.5 (OS X 10.4.8 on PowerPC,
> in case it's relevant.)
>
> >>> x, y = 0.0, -0.0
> >>> x, y
> (0.0, 0.0)
> >>> x, y = -0.0, 0.0
> >>> x, y
>
> (-0.0, -0.0)
>
> I would have expected y to be -0.0 in the first case, and 0.0 in the
> second. Should the above be considered a bug, or is Python not
> expected to honour signs of zeros? I'm working in a situation
> involving complex arithmetic where branch cuts, and hence signed
> zeros, are important, and it would be handy if the above code could be
> relied upon to do the right thing.
IIRC, float.__repr__ just does whatever libc does. Have you tried
using printf("%g, %g", 0.0, -0.0) in a C program?
More information about the Python-list
mailing list