Float comparison

From: Date: Fri, 02 May 2008 16:52:10 +0000
Subject: Float comparison
Groups: php.internals 
Request: Send a blank email to internals+get-37401@lists.php.net to get a copy of this message
Hi, I'm new to the PHP internals list and I'm posting an issue I'm sure has been mentioned before -- float comparison I'd like to know if there are reasons not to change the default behavior when comparing floats. i.e. This would seem logical to me: $test = 19.6*100; if((float)(string)$test == (double)1960) echo "GOOD BEHAVIOR"; // Implicitely convert the float to string then float (en_US locale) if($test == (double)1960) echo "THIS SHOULD PASS by casting (float)(string)$test internally..."; else echo "NOT GOOD BEHAVIOR"; // Exact comparison would still fail if($test !== (double)1960) echo "GOOD BEHAVIOR"; Any reason why $test == (double)1960 should fail? I realized we are comparing two floats, but couldn't php internally convert to string then float - for the non strict (===) case Thanks

« previous php.internals (#37401) next »