lua - 如何获取小数点以舍入一半

Mar*_*mer 3 lua rounding

我目前正在使用此功能进行舍入:

function round(val, decimal)
  if (decimal) then
    return math.floor( (val * 10^decimal) + 0.5) / (10^decimal)
  else
    return math.floor(val+0.5)
  end
end
Run Code Online (Sandbox Code Playgroud)

该功能完美无缺,除了当一个数字落在.5如5.5或1000.5或7.5时,我需要它向下舍入而不是向上.我必须对功能做出哪些改变才能实现这一目标?

Ego*_*off 7

function round(val, decimal)
  local exp = decimal and 10^decimal or 1
  return math.ceil(val * exp - 0.5) / exp
end
Run Code Online (Sandbox Code Playgroud)