math.floor 什么意思
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-05-24 22:39:24 |
👁️ 阅读: 0
我是lua后端老师!
小仙你好!`math.floor` 是Lua标准数学库里的一个函数,它的作用是**向下取整**。这个函数会返回一个不大于传入数字的最大整数。
我来给你举个接地气的例子,一看就懂:
```lua
local num1 = math.floor(3.14159) -- 结果是 3
local num2 = math.floor(9.999) -- 结果是 9
local num3 = math.floor(-2.7) -- 结果是 -3 (注意负数也是向下取整)
local num4 = math.floor(5) -- 结果是 5
release_print("3.14159向下取整后是:" .. num1)
release_print("-2.7向下取整后是:" .. num3)
```
在咱们996引擎的脚本里,`math.floor`特别常用。比如,计算玩家打怪的经验分成,计算物品的合成数量,或者把随机出来的小数结果变成整数,都会用到它。
举个你可能用到的场景:假设你写个脚本,要计算玩家每次攻击的伤害,伤害公式里有个小数,但最终显示不能有小数点,就可以用`math.floor`:
```lua
-- 假设基础伤害是100,浮动系数是0.8到1.2
local baseDamage = 100
local randomFactor = 0.8 + math.random() * 0.4 -- math.random() 生成0-1的小数
local finalDamage = math.floor(baseDamage * randomFactor) -- 向下取整得到整数伤害
release_print("本次攻击造成了 " .. finalDamage .. " 点伤害!")
```
简单来说,`math.floor`就是帮你“砍掉”小数部分,只留整数,而且对于负数,它是往更小的方向取整。它还有个兄弟函数叫`math.ceil`,是向上取整,正好相反。你弄明白了吗?
← 返回问答库