首页 > 解决方案 > 意外的“表索引为nan”错误lua

问题描述

我有线

distanceTable[ tonumber(distance) ] = obj

这引发了“表索引为 nan”错误。当距离为 67.882250993909 时。类型(距离)返回“数字”

距离是一个数字,为​​什么我会收到此错误?

标签: lualove2d

解决方案


正如错误消息所说,NaN 不能是表中的键,类似于nil. 我想这个限制是由于 NaN 有许多可能的二进制值,并且根据 IEEE 标准,NaN != NaN.

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


推荐阅读