ID: 24054 Updated by: [EMAIL PROTECTED] Reported By: spam at oops dot org -Status: Verified +Status: Critical Bug Type: Scripting Engine problem Operating System: Linux PHP Version: 4.3.2 New Comment:
PHP 4.2.3: ----------- float(10010000000) float(10010000000) PHP 4.3.1: ---------- float(1.001E+10) float(1.001E+10) PHP 4.3.2: ---------- float(1421485473408) float(1.001E+10) I've added a test case for this and this has to be fixed before 4.3.3. Previous Comments: ------------------------------------------------------------------------ [2003-06-06 05:20:57] [EMAIL PROTECTED] It seems that something goes wrong when casting to float on integer overflow. $ php -r '$i=10000000; $i*=1001; var_dump($i);' float(1421485473408) $ php -r '$i=10000000*1001; var_dump$i);' float(1.001E+10) ------------------------------------------------------------------------ [2003-06-06 04:25:26] spam at oops dot org 4.3.2 has assignment operateors problem. <?php $i = 10000000; $i *= 1001; echo $i; ?> upper code returns "1421485473408". but <?php $i = 10000000; $i = $i * 1001; echo $i; ?> upper code is success return "10010000000". *= operator has not always problem. if about bigger than 1000000000, problem is occured. :-) P.S sorry for my poor english. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=24054&edit=1