我在想整数和浮点数固件之间有什么区别,以及如何处理它们。到目前为止,我所能找到的是:
整数版本只支持整数运算,浮点版本包含支持浮点计算的内容。
好的,到目前为止都很好,但在实际生活中这意味着什么?
当我进行计算时会发生什么?
a = 3/2
对于浮点版本,我期望a = 1.5。对于整数版本,我期望a = 1。或者a将等于2,或者它会抛出一个错误或崩溃或其它什么?我知道,我可以简单地闪存整数版本并尝试一下,但我也想在这里得到答案。
还有哪些限制/差异存在?我提问的主要原因是:我尝试在不涉及任何浮点操作的整数版本上运行一些脚本,并且某些功能根本不存在。使用浮点版本则按预期工作。
更新:
这里是产生意外结果的片段:
local duration = (now - eventStart)
持续时间为0,这是由于整数固件现在的eventStart太大了,我猜测是因为这个原因:
now: 1477651622514913
eventStart: 1477651619238587
我认为其他限制是整数版本仅支持31位值的整数操作,因为当我进行转换时
now = tonumber(now)
现在等于2147483647,这是2^31 - 1
因此,在整数固件中
1477651622514913 - 1477651619238587 = 0
等同于
2147483647 - 2147483647
这明显是0。