View Single Post

  #4 (permalink)  
Old 05-12-2008
Chris W
 
Posts: n/a
Default Re: Division [maybe a bug]

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
Reply With Quote