• 欢迎大家分享资料!前往留言板评论即可!

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

合宙 模组资料网 5个月前 (05-15) 65次浏览 已收录 0个评论 扫描二维码

上一篇文章中提到,如果不使用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

转载请注明原文链接:【Lua】不使用Float LOD如何求绝对值
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址