在Lua语言中,#INF和#IND分别代表什么意思?
2013-10-1 19:48:26
收藏:0
阅读:254
评论:3
我对Lua还比较新。在测试过程中,我发现了#INF/#IND。但是,我找不到一个好的参考资料来解释它们。
什么是#INF、#IND以及类似的(比如负数),如何生成和使用它们?
点赞
用户2633423
扩展@YuHao已经很好的答案。
Lua在将数字转换为字符串时没有太多作为,因为它在很大程度上依赖于底层的C库实现。事实上,Lua print的实现 调用了Lua tostring ,而后者(经过一系列其他调用之后)使用了 lua_number2str 宏,它是用C sprintf定义的。因此,最终你会看到C实现使用的无限大和NaNs的任何表示(这可能根据编译Lua的编译器以及应用程序链接到的C运行时而有所不同)。
2013-10-01 07:09:54
用户687896
@YuHao已经回答了提问者所实际询问的问题:+/-1.#INF(+-inf)和-1.#IND(NaN)是什么意思。
我想在这里增加一些价值,通过扩展一些处理方法来检查它们(我刚刚需要并学到了):
inf(
+/-1.#INF)是Lua可以表示的最大的数字(+-),语言通过math.huge为您提供这样的值。因此,您可以测试数字是否为+/-INF:local function isINF(value) return value == math.huge or value == -math.huge }NaN(
-1.#IND)是无法通过数值处理的东西,并且任何涉及它的操作的结果也都是Not-a-number(*)。长话短说……如果一个数字是NaN,将其与自身比较将(总是)为False。下面的函数实现了检查NaN最简单的方法:local function isNAN(value) return value ~= value }
(*):这个(NaN)在IEEE754标准(浮点数)的某个地方有正式定义。
2014-02-04 12:47:53
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
#INF代表正无穷,#IND代表 NaN。进行测试:print(1/0) print(0/0)在我的 Windows 机器上会输出:
1.#INF -1.#IND由于在 ANSI C 中没有标准的表示方式,可能会得到不同的结果。例如:
inf -nan