【发布时间】:2013-12-18 15:21:24
【问题描述】:
由于某种原因,如果我执行以下操作,Lua 不会将整数解释为整数:(integer%1 应该是 0,但在本例中我将展示它实际上是
x = 4
for i=1,25 do
x = x - 0.04
end
print(x) -- 3
print(x%1) -- 1
print(math.ceil(x) == x) --false
print(math.ceil(x)) -- 3
可能这是一个错误,但有没有办法避免它?这对我来说真的很重要。 (不,我不能使用math.ceil(x),因为我不想将2.4 之类的数字解释为整数...
【问题讨论】:
-
他试图教你如何从 cmd 复制和粘贴,而不是使用屏幕截图。对于您的问题,尽管尝试
print(("%0.15f"):format(x))您得到的 x 值,看看您会得到什么。那和missingno的答案应该告诉你你的问题。 -
正如lua-users.org/wiki/NumbersTutorial 明确指出的那样:为了简单起见,Lua 只支持一种类型的数字,浮点数。因此,@missingno 的答案是您的完美解决方案。
-
查看 Lua 5.3 的工作草案,它引入了整数类型:lua.org/work/doc/#changes
标签: lua numbers integer division