# New Ticket Created by  Zefram 
# Please include the string:  [perl #128395]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=128395 >


> my $a = 0.Num
0
> my $b = -$a
-0
> $a
0
> $b
-0
> $a.WHICH
Num|0
> $b.WHICH
Num|-0
> atan2($a, -1)
3.14159265358979
> atan2($b, -1)
-3.14159265358979
> $a === $b
True

These two values, the two floating point zeroes, are distinct values, as
shown by their stringification, .WHICH, and atan2 branch cut behaviour.
The === comparison is producing the wrong answer, claiming that they're
the same value.  They are of course correctly ==, but === is making a
different kind of comparison.  In the related case of NaN compared to
NaN, === correctly says that NaN is the same value as itself, despite
it not being == to itself.

-zefram

Reply via email to