Signed zeros: is this a bug?

Dan Bishop danb_83 at yahoo.com
Sun Mar 11 17:04:51 CET 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