Lua几种计算公式

本文介绍Lua中实现的数学操作函数,包括四舍五入、奇进偶舍的四舍五入、相乘、相除及两种取整方法。通过具体函数示例,帮助读者理解并掌握Lua中的数值处理技巧。
--Lua-四舍五入(常用)
function Round(num, i)
    local mult = 10^(i or 0)
    local mult10 = mult * 10
    return math.floor((num * mult10 + 5)/10)/ mult
end
 
--Lua-四舍五入(奇进偶舍)
function Round2(num, i)
    local tmp = math.abs(num)*(10^(i+1))
    local cal = math.abs(num)*(10^(i+1))/(10^(i+1))
    local result = 0
    if(math.floor(tmp)-math.floor(tmp/10)*10==5) then 
        if(tmp-math.floor(tmp)==0) then
            local numInt1,numInt2 = math.modf(math.floor(tmp/10))
            if(numInt1 % 2 == 0) then
                result = math.floor(tmp/10)/(10^i)
            end
        end
    end
	if(result==0) then
        result = math.floor((cal * ((10^(i or 0)) * 10) + 5)/10)/ (10^(i or 0))
	end
    return ( num>0 and result ) or (0-result) 
end
 
 
--相乘,判断了是否有null值
function Multiply(num1,num2)
    if(num1==nil) then
        return 0
    end
    if(num2==nil) then
        return 0
    end
    
    local temp=tostring(num1*num2)
    temp=tonumber(temp)
    return temp
end
 
--相除
function Divide(denominator,numerator)
    if(numerator==nil) then
        return 0
    end
    if(denominator==nil) then
        return 0
    end
    if(numerator==0) then
        return 0
    end
    return denominator/numerator
end
 
--取整
function Ceil(num)
    if(num==nil) then
        return 0
    end
 
    if (num <= 0) then
        return math.ceil(num)
    end
 
    if (math.ceil(num) == num) then
        return math.ceil(num)
    else
        return math.ceil(num) - 1
    end
end
 
--取整
function Ceil2(num)
    if(num==nil) then
        return 0
    end
    
    local t1,t2 = math.modf(num)
    return t1
end
 
 
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

willgon123

谢谢打赏,我将再接再厉!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值