I\'m fairly new to Lua. While testing I discovered #INF
/#IND
. However, I can\'t find a good reference that explains it.
What are #INF
@YuHao has already pointed out what means +/-1.#INF (+-inf) and -1.#IND (nan), so I will just add how to deal with it (which I just needed to) in Lua:
local function isINF(value)
return value == math.huge or value == -math.huge
end
local function isNAN(value)
return value ~= value
end
Expanding @YuHao already good answer.
Lua does little when converting a number to a string, since it heavily relies on the underlying C library implementation. In fact Lua print implementation calls Lua tostring
which in turn (after a series of other calls) uses the lua_number2str macro, which is defined in terms of C sprintf. Thus in the end you see whatever representation for infinities and NaNs the C implementation uses (this may vary according to which compiler was used to compile Lua and which C runtime your application is linked to).
#INF
is infinite, #IND
is NaN. Give it a test:
print(1/0)
print(0/0)
Output on my Windows machine:
1.#INF
-1.#IND
As there's no standard representation for these in ANSI C, you may get different result. For instance:
inf
-nan