在我的引擎中,我有一个用于编写脚本的 Lua VM。在脚本中,我写了如下内容:
stage = stage + 1
if (stage == 5) then ... end
和
objnum = tonumber("5")
if (stage == objnum)
根据 Lua 来源,Lua 在比较双精度数时使用了一个简单的相等运算符,它使用的内部数字类型。
我知道处理浮点值时的精度问题,所以我想知道比较是否安全,即使用Lua默认的'=='操作简单地比较这些数字会有什么问题吗?如果是这样,我是否可以采取任何对策来确保 1+2 始终比较等于 3?将值转换为字符串会起作用吗?