如何在Lua中不使用+运算符拼接整数与浮点数两个变量
Lua 无加法运算符实现整数与浮点数合并方案
需求为将整数、浮点数两个变量合并得到对应组合后的浮点数,且不允许使用+运算符,可使用以下两种实现方式:
方案1:负号等价替换加法
利用a + b = a - (-b)的数学逻辑,完全规避+运算符,性能最优,无精度损耗:
local A = 12 local B = 0.2 local C = A - (-B) -- 执行后C的值为12.2
方案2:字符串拼接后转数值
按照字面拼接逻辑,先将浮点数转字符串截取小数部分,和整数拼接后转回数值:
local A = 12 local B = 0.2 local C = tonumber(A .. string.sub(tostring(B), 2)) -- 执行后C的值为12.2
注意:如果浮点数B的整数位不为0,需要先通过
math.modf提取纯小数部分再做拼接处理。
内容的提问来源于stack exchange,提问作者W1ll
相关产品推荐
相关产品推荐

