【Lua】不使用Float LOD如何求绝对值

上一篇文章中提到,如果不使用Float LOD,那么是无法使用math库的。那么很多常用的计算都无法解决,不过还好都可以用某些方法变通求得正确解。

#绝对值
求绝对值相对来说很简单,只要应用如下代码即可:

1
2
3
function math.abs(num)
return num >= 0 and num or 0 - num
end

实际效果如何呢?我们来检验一下:

1
2
3
4
5
6
> math.abs(5)
5
> math.abs(0)
0
> math.abs(-20)
20

嗯,看起来很不错哦。

#余数
如果开发者之前没有使用过Float LOD,由于项目需求需要重新它,那么所有涉及到除法的部分,都需要特殊处理才能避免数据出错。

举例说明,使用Float LOD之前,5/3的结果是1,但是使用Float LOD之后,结果就成了1.6666666666667,极可能造成运行错误。那么如何避免呢?推荐开发者使用如下方法:

1
2
3
function math.div(num1, num2)
return (num1 - num1 % num2) / num2
end

我们来测试一下效果如何:

1
2
3
4
> math.div(5, 3)
1.0
> 5/3
1.6666666666667

上次更新 2021-01-28