Lua - 数字是浮动还是翻倍?

时间:2016-03-09 14:43:22

标签: c lua floating-point

Lua文档说Lua使用double表示类型编号的值,这允许使用浮点数正确表示所有长整数值。

但是我在代码中看到lua_Number实际上是一个浮点数。这给了我以下警告:

warning C4244: 'argument' : conversion from 'double' to 'lua_Number', possible loss of data

对于:

double fVarVal = 0.0;
lua_pushnumber( L, fVarVal );

那么Lua中的类型数值是如何表示的?漂浮还是加倍?如果他们使用浮点数,那么当使用整数值(如数组索引)时,这会产生问题吗?

我使用Lua 5.3.2 for Windows CE。

1 个答案:

答案 0 :(得分:1)

  

我正在使用Lua 5.3.2 for Windows。

那么改变了事情。 Lua 5.3增加了在Lua中直接使用实际整数的能力。 Lua总是有lua_pushinteger函数,但是在5.3中,它没有将它转换为double。它取而代之的是64位整数。

从Lua当然,整数和浮点数看起来都一样。而且大多数Lua C API并没有太大的区别。但是如果你想要它可以。

在任何情况下,lua_Number默认为double,因此即使在Lua 5.1 / 2上,整数浮动也不是问题。当然,lua_Integerlua_Number可以根据需要进行调整。请注意,您使用的外部DLL也必须使用这些设置进行重新编译。