能有人爲什麼盧阿運行解釋: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