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, 2025 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, 2025 by avibootz

Related questions

1 answer 418 views
1 answer 264 views
1 answer 257 views
1 answer 192 views
1 answer 195 views
1 answer 159 views
159 views asked May 19, 2025 by avibootz
2 answers 208 views
...