GeeXLab 0.9.x.x is available with Lua 5.3 and one of the new features of Lua 5.3 is the native support of 64-bit integer numbers. In previous versions of Lua, only double precision floating numbers were available (fp64).
In some situations, it’s useful to convert a float to an integer. For example the number of GPU cores returned by gh_gml.get_gpu_cores() is a floating point number (even if the doc says it’s an int). To display it as an integer, Lua 5.3 requires some kind of conversion / casting otherwise you will end up with this error:
bad argument #2 to 'format' (number has no integer representation)
In the format() function of the string lib, you can use %.0f:
local cores = gh_gml.get_gpu_cores(0) local str = string.format("GPU 0 cores: %.0f)", cores)
Now if you need an integer number, you can convert a floating point number to an integer with math.floor():
local cores_float = gh_gml.get_gpu_cores(0) local cores_int = math.floor(cores_float)