美文网首页
判断 lua 数字的有效性

判断 lua 数字的有效性

作者: Lupino | 来源:发表于2020-12-15 22:05 被阅读0次

    在校准传感器的时候,使用不正确的校准方式, 在同一液体下进行校准。

    这时候读取数字的时候出现一些奇怪的值,我们测了一整天,总共出现 4 种不可能的值 nan, -nan, inf, -inf

    当出现这些不可能出现的值的时候,设备会挂掉,我们需要去过滤掉这些数字。

    给他们设置一个最大值,和最小值, 我设置为 1000000000-10000000000, 传感器是不可能测出来的值,而且可以让 lua 正常运行的值。

    相应的我们会对数值进行预处理,代码如下:

    function normal(data)
        if data == nil then
            return nil
        end
    
        local str_data = tostring(data)
    
        if str_data == 'nan' or str_data == '-nan' then
            return nil
        end
    
        if str_data == 'inf' then
            return 100000000000
        end
    
        if str_data == '-inf' then
            return -100000000000
        end
        return data
    end
    

    经过这个预处理,我们的设备稳定下来,没有在出现挂掉的情况。

    相关文章

      网友评论

          本文标题:判断 lua 数字的有效性

          本文链接:https://www.haomeiwen.com/subject/fcdggktx.html