Lua中数字与等式运算符比较,安全性如何保障?

2026-03-31 22:351阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计230个文字,预计阅读时间需要1分钟。

Lua中数字与等式运算符比较,安全性如何保障?

在我引擎中,有一个用于编写脚本的Lua+VM。脚本内容如下:

luastage=stage + 1if stage==5 then ...endobjnum=tonumber(25)if stage==objnum then 跟踪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?

Lua中数字与等式运算符比较,安全性如何保障?

You needn’t worry. Lua中的数字类型是double,它可以比long int更精确地保存更多整数.

本文共计230个文字,预计阅读时间需要1分钟。

Lua中数字与等式运算符比较,安全性如何保障?

在我引擎中,有一个用于编写脚本的Lua+VM。脚本内容如下:

luastage=stage + 1if stage==5 then ...endobjnum=tonumber(25)if stage==objnum then 跟踪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?

Lua中数字与等式运算符比较,安全性如何保障?

You needn’t worry. Lua中的数字类型是double,它可以比long int更精确地保存更多整数.