Test if Lua number is integer or float
问题 In my C++ program, I need to know if a Lua variable is an integer number or a floating-point number. The C API provides lua_isnumber() but this function does not distinguish between int/float/double . So far I have worked around this by using modf() : if (lua_isnumber(luaCtx, -1)) // int / unsigned int / float: { luaVarName = lua_tostring(luaCtx, -2); double n = static_cast<double>(lua_tonumber(luaCtx, -1)); // Figure out if int or float: double fractPart, intPart; fractPart = modf(n,