Lua文档中提到,Lua使用double类型来表示number类型的值,这使得所有的长整型值都可以使用浮点数正确地表示。
但是,我在代码中看到lua_Number实际上是一个float类型。这给了我以下警告提示:
那么,在Lua中,数字类型的值是如何表示的呢?是浮点数还是双精度数?如果它们使用浮点数,那么当使用整数值(如数组索引)时,这是否会创建问题?
我正在使用Windows CE的Lua 5.3.2版本。
但是,我在代码中看到lua_Number实际上是一个float类型。这给了我以下警告提示:
warning C4244: 'argument' : conversion from 'double' to 'lua_Number', possible loss of data
对于:
double fVarVal = 0.0;
lua_pushnumber( L, fVarVal );
那么,在Lua中,数字类型的值是如何表示的呢?是浮点数还是双精度数?如果它们使用浮点数,那么当使用整数值(如数组索引)时,这是否会创建问题?
我正在使用Windows CE的Lua 5.3.2版本。
double
与float
相比,可能会出现哪些意料之外的行为? - Eugene Sh.double
不能表示一个带有 64 位(POSIX64)的long int
的所有位。 - too honest for this site