Forcing string comparisons, or When is "0" not 0?
Devin Asay
devin_asay at byu.edu
Wed Oct 14 16:19:09 EDT 2015
In a simple calculator exercise I’m doing with my class I need to know whether the string in a field is "0" vs. "0.” (The latter can occur when the user enters zero + dot into the calculator display field.) If it’s just “0” the next next number key press should replace the contents of the display field; if it’s “0.” the next number key should be placed *after* the display field. But if the contents of fld “display” is “0.”, all of the following evaluate as TRUE:
fld “display” = “0.” # as expected
fld “display" = 0 # makes sense, because right side of comparison is a number
fld “display” = “0” # seems like this ought to be comparing string to string
char 1 to 2 of fld “display” is “0” # Really?!
Shouldn’t there be a way to force a string comparison? I know LC tries to be all helpful about casting numerals as numbers, but what if I want to know if it’s the exact string?
I guess I could do this dance:
if char 1 of fld “display” is “0” and char 2 of fld “display” is NOT “0” then…
It’s seems to complicated for such a simple thing, especially for explaining to novice programmers. Maybe I’m missing something obvious.
Devin
Devin Asay
Office of Digital Humanities
Brigham Young University
More information about the use-livecode
mailing list