在我的引擎中,我有一个用于编写脚本的Lua VM.在脚本中,我写的内容如下: stage = stage + 1if (stage == 5) then ... end 和 objnum = tonumber("5")if (stage == objnum) 根据Lua的消息来源,Lua在比较它使用的内
stage = stage + 1 if (stage == 5) then ... end
和
objnum = tonumber("5") if (stage == objnum)
根据Lua的消息来源,Lua在比较它使用的内部数字类型的双精度时使用了一个简单的相等运算符.
我知道处理浮点值时的精度问题,所以我想知道比较是否安全,也就是说,使用Lua的默认’==’操作简单地比较这些数字会有什么问题吗?如果是这样,是否有任何对策我可以确保1 2总是比较等于3?将值转换为字符串是否有效?
I can employ to make sure 1+2 always compares as equal to 3?
You needn’t worry. Lua中的数字类型是double,它可以比long int更精确地保存更多整数.