能有人为什么卢阿运行解释:Lua的小数精度损失
return 256.65 * 1000000 + .000000005 - 256 * 1000000 gives 649999.99999997
而
return 255.65 * 1000000 + .000000005 - 255 * 1000000 and
return 268.65 * 1000000 + .000000005 - 268 * 1000000 give 650000.0 ?
从我可以看到它似乎是严格十进制65个问题(而且似乎还我知道这与浮点运算有关,但我仍然很好奇这些值的特别之处,特别是
当打印数量'通过发出命令x''打印(X)',Lua中显示你'的String.Format( “%14G中”,X)',而不是数量的所有可用数字' x'(参见[Lua源代码](https://www.lua.org/source/5.3/luaconf.h.html#LUA_NUMBER_FMT))。你可以尝试'print(string.format(“%。17g”,x))'查看更多数字。 –
您的第二个代码段无效。 – warspyking
你是什么意思,它是无效的?为了清楚起见,我将它们表示为2个独立的代码片段,而不是2个返回语句并编辑在一起。我很抱歉,如果这不清楚 – David