Lua 报错:“table index is nan”错误

我有一行代码

distanceTable[ tonumber(distance) ] = obj

它抛出了“table index is nan”错误。 当 distance 为 67.882250993909 时,type(distance) 返回“number”

Distance 是一个数字,为什么我会得到这个错误?

点赞
用户1424244
用户1424244

根据错误信息,NaN 不能作为表中的键,类似于 nil。我猜测这个限制是由于 NaN 有许多可能的二进制值,而根据 IEEE 标准,NaN != NaN

由于 tonumber 在给定字符串时无法返回 NaN,因此它必须来自 distance。你使用的操作中可能有一个结果未定义,因此返回了 NaN。你可以使用 distance ~= distance 来检查 NaN 并相应地处理,或者防止导致该值的计算。

2018-10-24 14:39:59