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