Query about mod operator
Mick Collins
mickclns at mac.com
Mon Apr 21 14:18:16 EDT 2008
Interesting, I don't think it has to do with dividing by zero
I ran this script:
ON tst
REPEAT WITH i = 1 to 100
put i * .01 into iDiv
put 8 mod iDiv into modiDiv
put 8 div iDiv into intQuotient
put 8 - (intQuotient * iDiv + modiDiv) into theDiff
put iDiv & ", " & modiDiv & ", " & theDiff into line i of
field 1
END repeat
END tst
The (partial) results are:
0.01, 0.01, -0.01
0.02, 0.02, -0.02
0.03, 0.02, 0
0.04, 0.04, -0.04
0.05, 0.05, -0.05
0.06, 0.02, 0
0.07, 0.02, 0
0.08, 0.08, -0.08
0.09, 0.08, 0
0.1, 0.1, -0.1
0.11, 0.08, 0
0.12, 0.08, 0
<>
0.3, 0.2, 0
0.31, 0.25, 0
0.32, 0.32, -0.32
0.33, 0.08, 0
0.34, 0.18, 0
0.35, 0.3, 0
0.36, 0.08, 0
0.37, 0.23, 0
0.38, 0.02, 0
0.39, 0.2, 0
<>
0.7, 0.3, 0
0.71, 0.19, 0
0.72, 0.08, 0
0.73, 0.7, 0
<>
0.79, 0.1, 0
0.8, 0.8, -0.8
0.81, 0.71, 0
0.82, 0.62, 0
<>
0.88, 0.08, 0
0.89, 0.88, 0
0.9, 0.8, 0
0.91, 0.72, 0
0.92, 0.64, 0
<>
0.95, 0.4, 0
0.96, 0.32, 0
0.97, 0.24, 0
0.98, 0.16, 0
0.99, 0.08, 0
1, 0, 0
It seems that d divides 8 if and only if the mod is NOT
correct (until we get to 1, of course. I got similar results using 7
instead of 8.. Seems like it should work, I think it's a bug.
- Mick
On Apr 21, 2008, at 1:00 PM, use-revolution-request at lists.runrev.com
wrote:
>
> Message: 15
> Date: Mon, 21 Apr 2008 10:39:33 -0400
> From: Colin Holgate <coiin at rcn.com>
> Subject: Re: Query about mod operator
> To: How to use Revolution <use-revolution at lists.runrev.com>
> Message-ID: <C9F53C6A-67C6-4B88-B732-608AB6DE5153 at rcn.com>
> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
>
>
> On Apr 21, 2008, at 10:11 AM, Paul Williams wrote:
>
>> why does 8 mod 0.05 return 0.05 ?
>
> Mod is normally an integer operation, and as you wouldn't want to risk
> a divide by zero issue, perhaps it divides by at least 1? That would
> give a remainder that was equal to the fraction.
More information about the use-livecode
mailing list