gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 02:20:29 28 4
gpt4 key购买 nike

当我执行 0.1 + 0.2在 Lua 中,我得到 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))

我假设您正在使用 printio.write打印这些值。在这种情况下,Lua 只是不打印所有数字。在内部,Lua 使用全长、原生浮点表示。技术解释是 printio.write使用 LUA_NUMBER_FMT 中的格式格式化数字定义于 luaconf.h ,默认为 "%.14g" .

关于floating-point - Lua 的浮点处理与其他语言有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18005146/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com