我问自己整数和浮点固件之间有什么区别以及如何处理它们.到目前为止我能找到的只有:
仅支持整数运算的整数版本和包含浮点计算支持的float版本
好吧,到目前为止一切都那么好,但是wat在现实生活中是否意味着什么?
当我计算时会发生什么
a = 3/2
Run Code Online (Sandbox Code Playgroud)
对于浮点版本我期望a = 1.5对于整数版本我期望a = 1.或者等于2还是会抛出错误或崩溃或其他什么?我知道,我可以简单地刷一下整数版本并尝试一下,但是我也想讨论一下这里有答案.:)
存在哪些其他限制/差异?我问的主要原因是:我试图在整数版本上运行一些脚本而没有任何浮动操作我知道并且一些功能根本就不存在.随着浮动版本,它按预期工作.
更新:
这是产生意外结果的片段:
local duration = (now - eventStart)
Run Code Online (Sandbox Code Playgroud)
整数固件的持续时间为0.我想这是因为现在eventStart对于整数来说太大了:
now: 1477651622514913
eventStart: 1477651619238587
Run Code Online (Sandbox Code Playgroud)
所以我要说其他限制是整数版本只支持31位值的整数运算,因为我转换时
now = tonumber(now)
Run Code Online (Sandbox Code Playgroud)
现在= 2147483647,这是2 ^ 31 - 1
所以在整数固件中
1477651622514913 - 1477651619238587 = 0
Run Code Online (Sandbox Code Playgroud)
是相同的
2147483647 - 2147483647
Run Code Online (Sandbox Code Playgroud)
这显然是0
nodemcu ×1