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

 

Reply via email to