当前位置 : 主页 > 网络编程 > lua >

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

来源:互联网 收集:自由互联 发布时间:2021-06-23
当我在Lua中执行0.1 0.2时,我得到0.3.如果我在 Ruby或 Python中做同样的事情,我得到0.30000000000000004.我理解浮点舍入错误,但为什么Lua中不会出现这个问题呢? Lua做的不同之处是什么? 0.1 0.
当我在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”.

网友评论