@YuHao hat bereits darauf hingewiesen, was bedeutet +/- 1. # INF (+ -inf) und -1. # IND (Nan), so werde ich nur hinzufügen, wie man damit umgeht (was ich gerade brauchte in Lua):
- "inf" (+/- 1. # INF) sind die höhere Anzahl Werte, die (Lua/C) darstellen kann und die Sprache sieht vor, dass konstant für Sie: "math.huge". So können Sie eine Zahl innerhalb von Lua für + -INF testen; Die Funktion "isINF()" unten zeigt, wie man es benutzt.
- "nan" (- 1. # IND) ist etwas, das nicht numerisch behandelt werden kann: es sollte eine Zahl sein, es ist nicht, und alles, was Sie damit tun, ist alles andere als eine Zahl auch. Denken Sie daran, dass kein NaN dem anderen NaN gleich ist; überprüfe auf NaN wie die Funktion "isNAN()" unten.
local function isINF(value)
return value == math.huge or value == -math.huge
end
local function isNAN(value)
return value ~= value
end
'1/0 ',' -1/0' und '0/0' –
Ihre Lua bauen müssen Gleitkommatyp für Lua 'number' Typ verwenden . (Der Standard-Lua-Build verwendet den C-Double-Typ.) Siehe [Was jeder Computerwissenschaftler über Gleitkommaarithmetik wissen sollte] (http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg .html) von David Goldberg. –