![]() |
|
Comparing floating-point numbers - Printable Version +- Cuberite Forum (https://forum.cuberite.org) +-- Forum: Plugins (https://forum.cuberite.org/forum-1.html) +--- Forum: Plugin Discussion (https://forum.cuberite.org/forum-8.html) +--- Thread: Comparing floating-point numbers (/thread-2264.html) |
Comparing floating-point numbers - DrMasik - 12-20-2015 I'm down crazy (angry) with lua tonight:
function func1()
LOG(var1);
LOG(var2);
LOG("type var1 is ".. type(var1));
LOG("type var2 is ".. type(var2));
LOG("var1 - var2 = ".. (var1 - var2));
if var1 == var2 then
LOG("EQ");
else
LOG("NEQ");
end
Output: Code: Log: [02:05:47] 0.8RE: Lua. Copare float point numbers - worktycho - 12-20-2015 Thats just IEEE floating point. Which is why for the server we use "var1 - var2 < x" where x is something like 0.0001 for equality. http://floating-point-gui.de/errors/comparison/ RE: Comparing floating-point numbers - DrMasik - 12-20-2015 I'm fix the error var1 = tostring(var1); var2 = tostring(var2); LOG(var1); LOG(var2); ... RE: Comparing floating-point numbers - jan64 - 12-20-2015 That's a bit inefficient, worktycho's way with epsilon is better, imo. RE: Comparing floating-point numbers - DrMasik - 12-20-2015 (12-20-2015, 10:13 PM)jan64 Wrote: That's a bit inefficient, worktycho's way with epsilon is better, imo. I'm do not understand how does it work in worktycho's way. RE: Comparing floating-point numbers - jan64 - 12-21-2015 something like this: Code: if math.abs( var1 - var2 ) < 1e-3 then |