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

 ID:               51274
 Updated by:       ahar...@php.net
 Reported by:      cduncan at regatta dot com
 Summary:          Integer overflow does not cast as float
-Status:           Open
+Status:           Feedback
 Type:             Bug
 Package:          *General Issues
 Operating System: Linux
 PHP Version:      5.3.2

 New Comment:

I can't really see any way this could occur other than your server

having a 64-bit install of Linux on it. What distribution is the

server running, what does "uname -m" output, and what does configure

say the host and target system types are?



(Side note: the manual could admittedly be a bit clearer on this;

although the fact integer size differs on different platforms is

mentioned, it might be useful if the Integer Overflow section

actually reiterated it. I'll see about updating it.)


Previous Comments:
------------------------------------------------------------------------
[2010-03-26 06:21:39] ssufficool at gmail dot com

64 bit ubuntu 10.04 PHP 5.3 SVN:

int(2147483647)

int(2147483648)



32 bit machine and OS PHP 5.2.10:

int(2147483647)

float(2147483648)

------------------------------------------------------------------------
[2010-03-11 19:05:31] cduncan at regatta dot com

64bit machine, 32bit OS.

Also, wouldn't we expect a 64bit to return:



int(2147483647)

int(2147483648)

------------------------------------------------------------------------
[2010-03-11 17:58:30] j...@php.net

Could it possibly be that you're running this on 64bit machine? :)

------------------------------------------------------------------------
[2010-03-11 15:15:38] cduncan at regatta dot com

Description:
------------
The manual (http://php.net/manual/pl/language.types.integer.php)
includes the following segment to cover integer overflow:



<?php

$large_number =  2147483647;

var_dump($large_number);

// output: int(2147483647)



$large_number =  2147483648;

var_dump($large_number);

// output: float(2147483648)

?>



However when I try this on my recently upgraded server they are both
output as int(2147483647)

Test script:
---------------
$large_number =  2147483647;

var_dump($large_number);



$large_number =  2147483648;

var_dump($large_number);



Expected result:
----------------
I expect to see;



int(2147483647)

float(2147483648)



As I do on my box running 5.3.1



Actual result:
--------------
int(2147483647)

int(2147483647)




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



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

Reply via email to