我目前正在使用此函数进行舍入:

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

该函数完美运行,只是当一个数字落在 0.5 上时,例如 5.5 或 1000.5 或 7.5 我需要它向下舍入而不是向上舍入。为了实现这一点,我必须对函数进行哪些更改?

最佳答案

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

关于lua - 如何让小数四舍五入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16035944/

10-11 22:52
查看更多