lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

2016-08-04 20:48 GMT+02:00 Egor Skriptunoff <>:

> Your function will return wrong result for round(math.maxinteger + 0.75)
> on Lua built with 32-bit integer as LUA_INTEGER and double as

> Can you fix your function so it would give correct result for any
> combination of LUA_INTEGER and LUA_NUMBER?

How is this?

  local floor, frac = math.modf(x)
  return (frac<0.5 or frac==0.5 and floor%2==0) and floor
      or math.ceil(x)