【语法】
一、隐蔽陷阱:Lua 没有四舍五入函数,math.floor(2.5) 得 2 恒向负无穷取整——正数的四舍五入要用 floor 加半收口,负数还得对称另算。
二、底层原理:floor(x + 0.5) 对正数把半值及以上抬过整数门槛实现"五入";负数对称用 ceil(x - 0.5),统一封装避免两套逻辑散落各处。
三、正确代码:
错误写法。示例代码如下:
local function round(x)
return math.floor(x) -- 恒向负无穷,2.5得2
end
正确写法。示例代码如下:
local function round(x)
if x >= 0 then
return math.floor(x + 0.5)
end
return math.ceil(x - 0.5) -- 负数对称处理
end
sendmsg(actor, 1, "金币折扣四舍五入:"
.. round(15001 * 0.85) .. " 与 " .. round(-2.5))
四、引擎验证:2.5、3.5、-2.5 各 1 万次取整:floor 版全向负偏;加半版 2.5 得 3、-2.5 得 -3,符号对称零偏差。
五、FAQ:问:精确半值的争议怎么定?答:业务约定逢五进位即加半法,银行家舍入另配规则。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏】 一、规则机制 线上事故:切磋没有禁用清单,有人借切磋名义骗对方交出大药与长冷却技能,打完自己毫发无伤再被第三方收割…
【游戏】 一、规则机制 抛个坑:死了掉装备会不会把人劝退?掉落分层就能兼顾惩戒与保护:罪恶值高的红名阵亡,掉落一件背包非绑定…
【语法】 一、机制原理 一行代码拆解:s:gsub("%s+", " ")——把连续空白压成单个空格。Lua 的模式匹配有一…
【游戏】 一、规则机制 一行定骨架:proj.x = proj.x + dx / len STEP。飞行道具有四条命门:按固…
【语法】 一、机制原理 隐蔽的坑:全局变量拼错名静默 nil,流程默默走错分支——把 _G 打印出来一对照,多出来的陌生键就…
【语法】 一、机制原理 抛个坑:两张坐标对象内容一模一样,直接 < 比大小却当场报错 attempt to compare …