jo opp wrote:
2008/5/11 Chris W <[EMAIL PROTECTED]>:
jo opp wrote:

Hello!

$var1= 2155243640%31104000;
$var2= 2147309244%31104000;

echo $var1 // Return -24651656
echo $var2 // Return 1133244

$var2 return the correct result, but $var1 is wrong (the correct
result is 9067640)

 Probably because the maximum signed 32 bit integer value is
 2,147,483,648


OK, but with bigger numbers works fine again.
Right now I made a function to deal with this issue:

function remainder($dividend,$divisor){
        $remainder= $dividend-(floor($dividend/$divisor)*$divisor);
        return $remainder;
}

What do you think about it?


That will convert the numbers to floating point, which will give you round off error if the numbers get too big.

--
Chris W
KE5GIX

"Protect your digital freedom and privacy, eliminate DRM,
learn more at http://www.defectivebydesign.org/what_is_drm";

Ham Radio Repeater Database.
http://hrrdb.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to