上一篇文章中提到,如果不使用Float LOD,那么是无法使用math库的。那么很多常用的计算都无法解决,不过还好都可以用某些方法变通求得正确解。
#绝对值
求绝对值相对来说很简单,只要应用如下代码即可:
function math.abs(num)
return num >= 0 and num or 0 - num
end
实际效果如何呢?我们来检验一下:
> math.abs(5)
5
> math.abs(0)
0
> math.abs(-20)
20
嗯,看起来很不错哦。
#余数
如果开发者之前没有使用过Float LOD,由于项目需求需要重新它,那么所有涉及到除法的部分,都需要特殊处理才能避免数据出错。
举例说明,使用Float LOD之前,5/3
的结果是1
,但是使用Float LOD之后,结果就成了1.6666666666667
,极可能造成运行错误。那么如何避免呢?推荐开发者使用如下方法:
function math.div(num1, num2)
return (num1 - num1 % num2) / num2
end
我们来测试一下效果如何:
> math.div(5, 3)
1.0
> 5/3
1.6666666666667