如何四舍五入到最近的十分之一?

时间:2017-01-08 14:42:20

标签: lua rounding roblox

根据78.689或1.12这样的任意数量,我要寻找的是以编程方式将数字四舍五入到小数点后最接近的第十位。

我试图在一个DECLARE @SearchYear INT=2004 SELECT Product FROM [YourTable] WHERE @SearchYear >= start_year AND (@StartYear >= end_year OR end_year IS NULL) 函数可以舍入到最低整数的环境中执行此操作,据我所知,从文档中可以看出PHP && #39; s math.floor()功能。

4 个答案:

答案 0 :(得分:8)

有一个简单的摘录:http://lua-users.org/wiki/SimpleRound

function round(num, numDecimalPlaces)
  local mult = 10^(numDecimalPlaces or 0)
  return math.floor(num * mult + 0.5) / mult
end

当numDecimalPlaces为负数时会出现异常,但该页面上会有更多示例。

答案 1 :(得分:4)

你可以使用强制来做到这一点...... 它就像printf一样工作......你可以尝试做一些类似于这个片段的事情。

value = 8.9756354
print(string.format("%2.1f", value))
-- output: 9.0

答案 2 :(得分:1)

考虑到这是roblox,将它变成全局变量会更容易,而不是制作单个模块或创建自己的gloo。

_G.round = function(x, factor) 
    local factor = (factor) and (10 ^ factor) or 0
    return math.floor((x + 0.5) * factor) / factor
end

答案 3 :(得分:0)

在我的情况下,我只是试图用这个数字的字符串表示......但是,我想这个解决方案也可能对其他人有用。

string.sub(tostring(percent * 100), 1, 4)

所以要将其恢复为数字表示,您只需在结果数字上调用tonumber()即可。