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

 ID:                 54458
 Updated by:         cataphr...@php.net
 Reported by:        cs dot luizeduardo at hotmail dot com
 Summary:            Comparison with intval()
-Status:             Open
+Status:             Bogus
 Type:               Bug
 Package:            Variables related
 Operating System:   Windows
 PHP Version:        5.3SVN-2011-04-03 (SVN)
 Block user comment: N
 Private report:     N

 New Comment:

In[1]:= SetAccuracy[(1.1*100.), Infinity] - 110 // N[#, 20] &

Out[1]= 1.4210854715202003717*10^-14

In[2]:= SetAccuracy[110., Infinity] - 110 // N[#, 20] &

Out[2]= 0



110 is exactly representable in an IEEE 754 double precision number; 1.1
is not. When 1.1 is multiplied by 100, the error in the representation
of 1.1 is propagated and we don't end up with the exact 110. In PHP:



echo sprintf("%.20f %.20f\n", 110., 1.1 * 100);



110.00000000000000000000 110.00000000000001421085



Closing as bogus.


Previous Comments:
------------------------------------------------------------------------
[2011-04-03 17:31:45] cs dot luizeduardo at hotmail dot com

Description:
------------
comparisons with intval() function with real values between 1 and 2
(like 1.2 1.3 

etc).

Every return any fail;

Test script:
---------------
$numero = "1.1";

if (intval($numero * 100) == $numero * 100) 

{

        echo intval($numero * 100) . ":" . $numero * 100 . "<br/>"; 

        echo "Number OK!";

    } else {

        echo intval($numero * 100) . ":" . $numero * 100 . "<br/>"; //Return
110:110 (same) but the comparison has fail

        echo "The number shoud contains 2 decimal places";

}

Expected result:
----------------
110:110

Number OK!



OBS: With the variable with the 2.1 for example, the return result are
the 

expected.

Actual result:
--------------
110:110

The number shoud contains 2 decimal places


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



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

Reply via email to