warning: argument to `int' from `lua_Number'
我使用lua_tonumber函数得到这些警告。有什么问题?
答案 0 :(得分:4)
如果您需要int
中的lua_Number
,请使用lua_tointeger
。
答案 1 :(得分:3)
来自http://pgl.yoyo.org/luai/i/lua_tonumber:
lua_Number lua_tonumber (lua_State *L, int index);
它想要第二个参数的int。你的警告有助于“int' from
lua_Number'的争论”。所以你可能传递'lua_Number'作为第二个参数,而不是int。 'lua_Number'是双倍的。
因为它是Lua堆栈的索引号,所以传递double是没有任何意义的。我会检查你的代码,因为传入lua_Number可能是一个错误。
答案 2 :(得分:0)
根据提供的和备用的信息,我的答案是:
lua_Number是一个双倍。所以它抱怨转换为int。
转换它的最简单方法是:
lua_Number a = 3.7;
int b;
b = static_cast<int>(a)
然而,b将是3.如果你想围绕它,你可以做这样的事情:
lua_Number a = 3.7;
int b;
b = static_cast<int>(a+0.5)
这样,您可以确保每个后缀大于或等于0.5的数字都是四舍五入的。
但你需要自己决定,你想要什么样的解决方案。
答案 3 :(得分:-1)
试试static_cast?它通常会抑制警告,但我不熟悉Lua。