Lua - 检测整数

时间:2016-03-17 13:40:43

标签: c lua

Lua表现如下:

print( 1 ) -- prints 1
print( 1.0 ) -- prints 1.0

由于Lua正在使用lua_Number,这是一个浮点值(float或double),对于所有数字类型(即整数和实数),我猜它会以某种方式跟踪a的实际性质数字值,否则print( 1 )将打印1.0,因为在Lua代码中的某个点将{1}转换为1时,lua_Number为整数的信息将会丢失。

有没有办法,使用Lua 5.3.2的C API来检测lua_Number最初是整数还是实数?

假设我想编写一个期望整数或实数的本机函数。如何在弹出参数时,如果给定值为11.0,我怎么知道?

感谢。

PS:我已经看到了这个答案:Test if Lua number is integer or float但它并没有解决我的问题,因为检查number == (int) number是否表明任何真实的N.0都是整数。

1 个答案:

答案 0 :(得分:1)

Lua 5.3使用lua_Number(默认值:double)表示浮点数,并使用lua_Integer(默认值:long long)表示整数。以前的版本只有浮点类型。 API具有函数lua_isinteger,用于确定值是否表示为整数。