The .text attribute of a field is a string. Comparing numbers to strings in Lil can have surprising results, because in this case Lil makes the comparison lexicographically:
3>"12" # 1 3>12 # 0
To avoid this problem, you can use an arithmetic identity operation to coerce the string into a number before performing a comparison:
myField.text # "12" 0+myField.text # 12
Alternatively, use the .data attribute of the field instead: this will ask Decker to interpret the contents of the field as LOVE (a superset of JSON):
myField.text # "12" myField.data # 12 otherField.text # "[11,22,33]" otherField.data # (11,22,33)
Yet another option would be to store numbers in Slider Widgets instead of fields; a slider's .value attribute is always a number. Does that help?