加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Lua的浮点处理与其他语言有何不同?

发布时间:2020-12-14 21:48:26 所属栏目:大数据 来源:网络整理
导读:当我在Lua中执行0.1 0.2时,我得到0.3.如果我在 Ruby或 Python中做同样的事情,我得到0.30000000000000004.我理解浮点舍入错误,但为什么Lua中不会出现这个问题呢? Lua做的不同之处是什么? 解决方法 0.1 0.2不精确到0.3.试试这段代码: print((0.1+0.2)==0.3)
当我在Lua中执行0.1 0.2时,我得到0.3.如果我在 Ruby或 Python中做同样的事情,我得到0.30000000000000004.我理解浮点舍入错误,但为什么Lua中不会出现这个问题呢? Lua做的不同之处是什么?

解决方法

0.1 0.2不精确到0.3.试试这段代码:

print((0.1+0.2)==0.3)
print(string.format("%.17g",0.1+0.2))

我假设您使用print或io.write来打印这些值.在这种情况下,Lua只是不打印所有数字.在内部,Lua使用全长的本机浮点表示.技术说明是使用luaconf.h中定义的LUA_NUMBER_FMT格式的print和io.write格式编号,默认情况下为“%.14g”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读