Comparing very long numeric strings
Dar Scott
dsc at swcp.com
Thu Mar 18 22:00:10 EST 2004
On Tuesday, March 16, 2004, at 03:10 PM, Jim Lyons wrote:
> I have a long string of 1s and 0s in a variable representing the
> states of cells in a cellular automata simulation. There can be more
> than ten thousand cells.
...
> Finally, I wondered if there could be a difference between numeric and
> string comparison, so I tried changing the comparison above to:
>
> if "z"&nextState = "z"&curState then StopCA
>
> Surprisingly (to me) this fixed the problem.
Yes, = (and 'is') will compare numeric it the data looks numeric (or is
internally). I think if it is compared numeric, then it will be
compared as double floating point. Your string of 1's and 0's will
look like a large numeral with digits. As is, it might compare only
the first 15 or so characters.
It would be nice to have a comparison function/operator that is string
oriented always and does not try to compare numerically.
Your method will work. Another one is this:
if length(&nextState)=length(&curState) and &nextState contains
&curstate
If your states are always the same size, then you can get by with only
'contains'.
Dar Scott
More information about the use-livecode
mailing list