为什么要使用lua_pushinteger()?

为什么要使用lua_pushinteger()?,lua,Lua,Lua的当前版本不支持整数,只支持浮点数。(随着即将推出的5.3,这一点正在发生变化,但我们忽略这一点。) 所以,我的问题是:lua\u pushinteger()有什么用?如果数字被转换成浮点数,为什么不直接使用lua\u pushnumber() (请不要回答“为了将来与5.3的兼容性”,这对于今天来说是一个很好的答案,但是这个答案并不能满足我的好奇心:在过去,整数支持是不可能实现的。我想知道为什么lua\u pushinteger()是在第一时间引入的,事后并不感到抱歉。)API中的整数显

Lua的当前版本不支持整数,只支持浮点数。(随着即将推出的5.3,这一点正在发生变化,但我们忽略这一点。)

所以,我的问题是:
lua\u pushinteger()
有什么用?如果数字被转换成浮点数,为什么不直接使用
lua\u pushnumber()


(请不要回答“为了将来与5.3的兼容性”,这对于今天来说是一个很好的答案,但是这个答案并不能满足我的好奇心:在过去,整数支持是不可能实现的。我想知道为什么
lua\u pushinteger()
是在第一时间引入的,事后并不感到抱歉。)API中的整数显式处理是为了文档、性能和正确性而引入的


将整数的处理显式地集中在API中允许内核使用与浮点之间的最佳转换;在某些平台上,如果做得太幼稚,成本可能会很高。它还允许内核检查溢出,尽管Lua 5.1和5.2没有检查这一点。

为了抑制关于可能丢失信息的警告?您提出的答案是正确的,我过去在代码中忽略了*integer和*unsigned 5.3,但现在我明白了,引入*integer和*unsigned代码是为了让我们轻松地进入5.3。谢谢。我有一个小问题:我理解这里的“文档”和“性能”是什么意思,但“正确性”是什么意思?既然Lua不检查溢出,那么从int到float的转换怎么可能不正确呢?