Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“意外”;表索引为“nan”;错误lua_Lua_Love2d - Fatal编程技术网

“意外”;表索引为“nan”;错误lua

“意外”;表索引为“nan”;错误lua,lua,love2d,Lua,Love2d,我有电话 distanceTable[ tonumber(distance) ] = obj 这会引发“表索引为nan”错误。当距离为67.882250993909时。类型(距离)返回“数字” 距离是一个数字,为什么会出现此错误?正如错误消息所说,NaN不能是表中的键,类似于nil。我认为这种限制是由于NaN有许多可能的二进制值,并且根据IEEE标准,NaN!=NaN 由于tonumber在给定字符串时无法返回NaN,因此它必须来自距离。您使用的操作的一个结果可能未定义,因此返回NaN。您可以

我有电话

distanceTable[ tonumber(distance) ] = obj
这会引发“表索引为nan”错误。当距离为67.882250993909时。类型(距离)返回“数字”


距离是一个数字,为什么会出现此错误?

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


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

NaN
是一个数字;例如,
0/0
返回
nan
type(0/0)
的“number”
。您是否可以提供更多代码来显示发生错误的位置以及出现错误时距离的值是多少?为什么要使用
tonumber(distance)
?距离不是已经是一个数字了吗?如果
distance
是一个字符串,那么
type(distance)
可能不是
number
。tonumber(distance)是用于演示的。这很奇怪,因为我不记得从
tonumber
得到
nan
,只有一个非
nan
数字或
nil
。我想知道发生了什么。@cyclaminit,
tonumber(0/0)
gives
nan
tonumber
在给定nan时返回nan,例如在
tonumber(0/0)
中。