LUA 将数字四舍五入到1位

我假设有一种比写一堆 if 语句更好的方法。我的目标是将左边的数字四舍五入到1位。例如,如果数字是12345.6789,则向下取整为100000.0000。如果数字是9999999.9999,则向下取整为1000000.0000。并且还希望能够处理小数,因此如果数字为0.00456789,则将其舍入到0.00100000。

任何帮助或指导都将不胜感激。

点赞
用户4984564
用户4984564
本地函数 `weird_rounding(num)` 的作用是对一个数进行奇怪的近似处理,代码如下:

local function weird_rounding(num) return 10 ^ math.floor(math.log(num, 10)) end

```

其中,该函数使用了 Lua 中的数学函数 logfloor。具体来说,log(num, 10) 返回以 10 为底的 num 的对数,然后 floor 函数将其向下取整,最后使用指数运算 ^ 返回一个以 10 为底、位数比 num 小的数,即实现了奇怪的近似处理。

2019-12-07 14:35:52