MOD function does not work! So be warned!
Dar Scott
dsc at swcp.com
Sun Mar 31 12:55:01 EST 2002
On Sunday, March 31, 2002, at 09:00 AM, Richard Gaskin wrote:
> Interestingly, when you type "put 5 mod 5" (or "255 md 5" or
> other number
> divisible by five that fails when inside a loop) into the Message
> Box the
> result is 0.
>
> Stranger still, if you rewrite the line like this so that the loop
> var is
> evaluated outside of the rest of the statement:
>
> do "put loop &tab&"& loop &&"mod 5 & return after msg"
>
> ...you get 0.
>
> What is it about loops that affects this so?
>
> :\
It is not the loop, it is addition. Every Revolution number (a
priori) has a potential error. This accumulates. (I say "a
priori" because some numbers, can be represented exactly.)
Worse, when two numbers are added, information in the smaller
number is thrown away. In the extreme case, no matter how many
times you add a very small number to a larger, it doesn't change.
In the "do" example, the value of loop is rounded by the default
value of numberFormat when the "do" string is created. That seems
to be enough to make the result close enough to look like a whole
multiple of 5.
When such results are "interesting" and "strange"...
Dar Scott
More information about the use-livecode
mailing list