Strange result with math.atan2()
Peter Otten
__peter__ at web.de
Tue May 2 08:57:25 EDT 2006
Vedran Fura? wrote:
> I think that this results must be the same:
>
> In [3]: math.atan2(-0.0,-1)
> Out[3]: -3.1415926535897931
>
> In [4]: math.atan2(-0,-1)
> Out[4]: 3.1415926535897931
>
> In [5]: -0 == -0.0
> Out[5]: True
Glimpsing at the hardware formats:
>>> struct.pack("d", 0.0)
'\x00\x00\x00\x00\x00\x00\x00\x00'
>>> struct.pack("d", -0.0)
'\x00\x00\x00\x00\x00\x00\x00\x80'
>>> struct.pack("i", -0)
'\x00\x00\x00\x00'
>>> struct.pack("i", 0)
'\x00\x00\x00\x00'
-0 and +0 integers are identical while 0.0 and -0.0 floats are not. The
negative sign is therefore lost before the int --> float conversion takes
place.
Peter
More information about the Python-list
mailing list