Vir*_*721 5 c floating-point lua
Lua 文档说 Lua 使用 double 表示数字类型的值,这允许使用浮点数正确表示所有长整型值。
但是我在代码中看到 lua_Number 实际上是一个浮点数。这给了我以下警告:
warning C4244: 'argument' : conversion from 'double' to 'lua_Number', possible loss of data
Run Code Online (Sandbox Code Playgroud)
为了 :
double fVarVal = 0.0;
lua_pushnumber( L, fVarVal );
Run Code Online (Sandbox Code Playgroud)
那么 Lua 中如何表示 number 类型的值呢?浮动还是双精度?如果他们使用浮点数,那么在使用整数值(如数组索引)时这不会产生问题吗?
我在 Windows CE 上使用 Lua 5.3.2。
我在 Windows 上使用 Lua 5.3.2。
好吧,这反而改变了事情。Lua 5.3 添加了直接在 Lua 中使用实际整数的能力。Lua 一直都有这个lua_pushinteger函数,但是在 5.3 中,它不会将其转换为double. 相反,它是一个 64 位整数。
当然,在 Lua 中,整数和浮点数看起来是一样的。而且大多数Lua C API 并没有做太多的区分。但如果你愿意的话它可以。
无论如何,lua_Number默认为double,所以即使在 Lua 5.1/2 上,整数作为浮点也不是什么大问题。当然可以,lua_Integer并且lua_Number可以根据需要进行调整。请注意,您使用的外部 DLL 也必须使用这些设置重新编译。