Как говорится в сообщении об ошибке, NaN не может быть ключом в таблице, подобно nil
.Я предполагаю, что это ограничение вызвано тем фактом, что существует множество возможных двоичных значений для NaN, и в соответствии со стандартом IEEE, NaN != NaN
.
Поскольку tonumber
не может вернуть NaN, если дана строка,должно быть, оно пришло от distance
.Вероятно, один из результатов использованных вами операций был неопределенным, и поэтому он вернул NaN.Вы можете использовать distance ~= distance
, чтобы проверить наличие NaN и обработать его соответствующим образом, или предотвратить вычисления, приведшие к значению.