Lua math.floor返回错误的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lua math.floor返回错误的值相关的知识,希望对你有一定的参考价值。

。有我的代码:

for k,v in pairs(result) do
  result[k] = math.floor(v*1000)/1000
  if k == 215 then
     print(v, math.floor(v*1000))
  end
end
for k,v in pairs(extra) do
  extra[k] = math.floor(v*1000)/1000
end

哪里

result[215] = 113

但是当我用C ++ Lua-Tinker运行它时,我得到了打印:

113, 112999

这很混乱!

答案

感谢Egor Skriptunoff,我得到了答案。有一个例子:

local num1 = 100 + 1300/100
print(num1, math.floor(num1))

local num2 = (1 + 13/100) * 100
print(num2, math.floor(num2))

结果是:

113 113
113 112

实际上,num2 = 112.9999999999999 ...,因为13/100.But当使用'print'来显示它时,有一个圆形动作:

local a=112.99999999999 --(the count of 9 is 11)
print(a)
local b=112.999999999999 --(the count of 9 is 12)
print(b)

结果是:

112.99999999999
113

以上是关于Lua math.floor返回错误的值的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 有用的代码片段和 trick

一个lua的简单日期格式化

lua学习之math库

lua math库

lua math库

lua math库