ID:               41038
 Updated by:       [EMAIL PROTECTED]
 Reported By:      mahesh dot vemula at in dot ibm dot com
-Status:           Open
+Status:           Wont fix
 Bug Type:         *Compile Issues
 Operating System: RHEL 4
 PHP Version:      5CVS-2007-04-10 (snap)
 New Comment:

String "-2147483648" contains two tokens: "-" and "2147483648".
Since strtol() returns ERANGE when parsing "2147483648", the result
number is double.
>From what I can see, changing this fact would require major changes to
the parser which hopefully nobody is going to do.
Marking as "Won't fix".


Previous Comments:
------------------------------------------------------------------------

[2007-04-10 12:58:00] mahesh dot vemula at in dot ibm dot com

Description:
------------
The least integer value (i.e -2147483648 ) is  being treated as
float(-2147483648) by the parser. var_dump(-2147483648) returns
float(-2147483648).  A integer value should be treated as float, only if
the value is beyond the boundary of the integer type. 
The php documentation explains the same here :
http://in.php.net/manual/en/function.intval.php  & 
http://in.php.net/manual/en/language.types.integer.php

Remarks:
The Reproduce code confirms that the parser is not handling the Minimum
Integer value (i.e, -2147483648) as expected. 

Environment:
Operating System: RHEL 4
Linux Kernel : Linux 2.6.9
PHP Version: PHP 5.2 (Built on Apr 10, 2007 from snaps.php.net)
PHP Configure Setup: ./configure


Reproduce code:
---------------
<?php
$i = -2147483648;
var_dump($i); 

$j = (int)"-2147483648";
var_dump($j); 
?>

Expected result:
----------------
int(-2147483648)
int(-2147483648)

Actual result:
--------------
float(-2147483648)
int(-2147483648)


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


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

Reply via email to