How to round a floating-point number to an integer in Lua

2 Answers

0 votes
function round(float)
    return math.floor(float + .5)
end

x = 9382.4;
y = round(x)
print(y)

x = 9382.5;
y = round(x)
print(y)

 
 
--[[
run:
  
9382
9383
  
--]]

 



answered May 14 by avibootz
0 votes
function round(float)
    local int, part = math.modf(float)
    if float == math.abs(float) and part >= .5 then return int + 1 -- positive float
    elseif part <= -.5 then return int - 1                         -- negative float
    end
    return int
end

x = 9382.4;
y = round(x)
print(y)

x = 9382.5;
y = round(x)
print(y)

x = -11.4;
y = round(x)
print(y)

x = -11.5;
y = round(x)
print(y)

 
 
--[[
run:
  
9382
9383
-11
-12
  
--]]

 



answered May 14 by avibootz

Related questions

1 answer 331 views
1 answer 172 views
1 answer 183 views
1 answer 124 views
1 answer 109 views
1 answer 21 views
21 views asked May 19 by avibootz
2 answers 105 views
...