Edit report at http://bugs.php.net/bug.php?id=45712&edit=1

 ID:                 45712
 Comment by:         jwvdveer at gmail dot com
 Reported by:        for-bugs at hnw dot jp
 Summary:            $something == NaN returns true with 5.3, false with
                     5.2.*
 Status:             Closed
 Type:               Bug
 Package:            Variables related
 Operating System:   *
 PHP Version:        5.2CVS, 5.3CVS, 6CVS (2008-08-05)
 Assigned To:        tony2001
 Block user comment: N

 New Comment:

Please, reopen this bug. It's not working in PHP 5.3.3 on Windows
platform (released at 2010-07-21).

The behaviour of a comparison to NAN is the same as noted here.



It's not just a `me too`, but this thread shouln't have been closed.


Previous Comments:
------------------------------------------------------------------------
[2008-08-07 08:36:33] tony2...@php.net

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.



------------------------------------------------------------------------
[2008-08-07 07:37:04] tony2...@php.net

I'm testing a patch for it.

------------------------------------------------------------------------
[2008-08-05 12:52:06] for-bugs at hnw dot jp

NaN is not exact number. So, NaN should not equals itself. Additionaly,
NaN == NaN is false in C. You can see behavior of C as follows.



$ cat nan.c

int main() {double d;d=(-1e300*1e300)/(1e300*1e300);if (d==d) return 1;
else return 2;}

$ gcc nan.c; ./a.out; echo $?

2

$

------------------------------------------------------------------------
[2008-08-05 12:33:17] j...@php.net

That $nan == $nan should be true. (like it is with 5.3)

------------------------------------------------------------------------
[2008-08-05 02:39:58] for-bugs at hnw dot jp

Description:
------------
There is == operator's problem dealing with NaN(Not a Number) in PHP
5.3.0alpha1. This behavior is different with PHP 5.0.0-5.2.6, so this is
compatibility problem.

Reproduce code:
---------------
<?php



$nan = (-1e300*1e300)/(1e300*1e300); // float(NAN)



var_dump($nan=='');

var_dump($nan==0.5);

var_dump($nan==50);

var_dump($nan=='500');

var_dump($nan=='abc');

var_dump($nan==$nan);

Expected result:
----------------
bool(false)

bool(false)

bool(false)

bool(false)

bool(false)

bool(false)

Actual result:
--------------
bool(true)

bool(true)

bool(true)

bool(true)

bool(true)

bool(true)


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=45712&edit=1

Reply via email to