我有线
distanceTable[ tonumber(distance) ] = obj
正在引发“表索引为nan”错误。距离为67.882250993909时。类型(距离)返回“数字”
距离是一个数字,为什么我会收到此错误?
答案 0 :(得分:2)
如错误消息所述,NaN不能是表中的键,类似于nil
。我猜想这种限制是由于存在这样的事实,即NaN存在许多可能的二进制值,并且根据IEEE标准NaN != NaN
。
由于tonumber
在给出字符串时不能返回NaN,因此它必须来自distance
。您使用的操作的结果之一可能是不确定的,因此它返回了NaN。您可以使用distance ~= distance
来检查NaN并进行相应处理,或者阻止产生该值的计算。