如何摆脱这些 c++警告?

发布于 2024-11-28 18:54:04 字数 112 浏览 0 评论 0 原文

warning: argument to `int' from `lua_Number'

我通过使用 lua_tonumber 函数收到这些警告。问题是什么?

warning: argument to `int' from `lua_Number'

I get these warnings from using the lua_tonumber function. What is the problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

会傲 2024-12-05 18:54:04

当您需要 lua_Number 中的 int 时,请使用 lua_tointeger

When you want an int from a lua_Number, use lua_tointeger.

扭转时空 2024-12-05 18:54:04

来自http://pgl.yoyo.org/luai/i/lua_tonumber

lua_Number lua_tonumber (lua_State *L, int index);

它想要第二个参数为 int。您的警告很有帮助,“从 lua_Number' 到 int' 的参数”。因此,您可能为第二个参数传递“lua_Number”,而不是 int。 'lua_Number' 是一个双精度数。

因为它是 Lua 堆栈中的索引号,所以传递 double 没有任何意义。我会检查您的代码,因为传入 lua_Number 可能是一个错误。

From http://pgl.yoyo.org/luai/i/lua_tonumber:

lua_Number lua_tonumber (lua_State *L, int index);

It wants an int for the 2nd parameter. Your warning says, helpfully, "argument to int' fromlua_Number'". So you're probably passing in a 'lua_Number' for the 2nd parameter, rather than an int. a 'lua_Number' is a double.

Since it's an index number into Lua's stack, passing a double doesn't make any sense. I would check your code as passing in a lua_Number is probably a mistake.

何止钟意 2024-12-05 18:54:04

根据提供的和备用的信息,我的答案是:

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 的数字都被四舍五入。

但你需要自己决定,你想要什么样的解决方案。

Based on the provided and spare informations, my answer is this:

lua_Number is a double. So it is complaining about getting converted to an int.

The easiest method to convert it is this:

lua_Number a = 3.7;
int b;
b = static_cast<int>(a)

However, b will be 3. If you want to round it, you can do something like this:

lua_Number a = 3.7;
int b;
b = static_cast<int>(a+0.5)

This way you can ensure that every number which has a suffix higher or equal to 0.5 is rounded.

But you need to decide yourself, what kind of solution you want here.

不气馁 2024-12-05 18:54:04

尝试 static_cast 吗?它通常会抑制警告,但我对 Lua 不熟悉。

Try static_cast? It usually suppresses warnings, but I'm not familiar with Lua.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文