在 Lua 中如何使小数进行四舍五入后向下取整的方法?
2013-4-16 11:33:35
收藏:0
阅读:200
评论:2
我目前正在使用以下函数进行四舍五入:
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时,我需要它向下舍入而不是向上。 我需要对函数进行哪些更改才能实现这一点?
点赞
用户1847592
# round 函数
该函数用于将一个数字四舍五入到指定的小数位。
## 参数
- `val`(必须)- 要四舍五入的数字。
- `decimal`(可选)- 要保留的小数位数。
## 返回值
返回四舍五入后的值。
## 示例
```lua
local num = 3.1415926
local rounded = round(num, 2)
print(rounded) -- 输出 3.14
实现
function round(val, decimal)
local exp = decimal and 10^decimal or 1
return math.ceil(val * exp - 0.5) / exp
end
```
2013-04-16 12:16:32
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
function round(val, decimal) -- 取整数部分 local rndval = math.floor(val) -- 取小数部分 local decval = val - rndval if decimal and decimal ~= 0 then -- 如果需要四舍五入 -- 先将小数乘以 10 的 decimal 次方 decval = decval * 10 ^ decimal -- 对乘以后的数进行四舍五入操作 if decval % 1 > 0.5 then decval = math.ceil(decval) else decval = math.floor(decval) end -- 将四舍五入后的小数加回到整数中 return rndval + decval / 10 ^ decimal else -- 不需要四舍五入,则判断小数是否大于 0.5 return decval > 0.5 and rndval + 1 or rndval end end