выообще, с преобразованиями типа tonumber() надо аккуратнее - это тоже в некотором роде костыль, т.к. это преобразование, и как любое преобразование, оно не всегда ожидаемо работает. То есть да, оно сработает на строках "1" и "1 ", но если написать "1 ddfdf" то сравнение будет с nil, например.