将lua中的数字与等式运算符进行比较有多安全?

前端之家收集整理的这篇文章主要介绍了将lua中的数字与等式运算符进行比较有多安全?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的引擎中,我有一个用于编写脚本的Lua VM.在脚本中,我写的内容如下:

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更精确地保存更多整数.

猜你在找的Lua相关文章