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