jo opp wrote:
> 2008/5/11 Chris W <2wsxdr5@cox.net>:
>> 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