Re: Division [maybe a bug]
- From: 2wsxdr5@xxxxxxx (Chris W)
- Date: Sun, 11 May 2008 20:59:39 -0500
jo opp wrote:
2008/5/11 Chris W <2wsxdr5@xxxxxxx>:jo opp wrote:
Hello!Probably because the maximum signed 32 bit integer value is
$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)
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
.
- References:
- Division [maybe a bug]
- From: "jo opp"
- Re: Division [maybe a bug]
- From: Chris W
- Re: Division [maybe a bug]
- From: "jo opp"
- Division [maybe a bug]
- Prev by Date: Re: [PHP] Re: How to determine if file is writable and deletable
- Next by Date: Ignore Tags
- Previous by thread: Re: Division [maybe a bug]
- Next by thread: PHP-MYSQL Error: Can't connect to MySQL socket. Can someone help me out please?
- Index(es):
Relevant Pages
|