Re: Division [maybe a bug]
| From: | jo opp | Date: | Sun, 11 May 2008 15:08:04 +0000 |
| Subject: | Re: Division [maybe a bug] | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-274152@lists.php.net to get a copy of this message | ||
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?
> if you are dealing with numbers that large, consider using some arbitrary
> precision math functions that can work with as large of numbers as you need.
>
>
> http://us3.php.net/manual/en/refs.mathcrypto.math.php
>
>
>
> --
> 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
>