我编写了一个程序,在一些计算后打印一个矩阵,我得到了nan所有元素的输出.我想for在矩阵的第一个元素变为nan理解问题时立即打破循环.我怎样才能做到这一点?在终端中,我打印了a包含nan所有元素并输入的矩阵a[1][1]=="nan",a[{{1},{1}}]=="nan"两者都返回false.他们为什么不回来false,我应该使用什么声明呢?
您的测试失败是因为您正在将数字与字符串进行比较"nan".
如果您确定它是一个数字,最简单的方法是:
if a[1][1] ~= a[1][1] then
Run Code Online (Sandbox Code Playgroud)
因为根据IEEE 754,一个nan值被认为不等于任何值,包括它自己.
两种解决方案:
local n = 0/0 -- nan
-- first solution
if ( tostring(n) == "nan" ) then
print("is nan!!")
end
-- second solution
if (n ~= n) then
print("is nan!!")
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4364 次 |
| 最近记录: |