lua 四舍五入

为什么80%的码农都做不了架构师?>>>   hot3.png

在lua中使用要非常谨慎,即使传进去是个数字计算也完全不一样,接受数字要先转换成字符串在进行处理

 

--标准四舍五入算法
function NewRound(decimal)
    local decimal = math.floor((decimal*100)+0.5)*0.01       
    return  decimal 
end

--四舍六入五考虑算法
function NewRound1(decimal)
    --将数字*100然后小数和整数切开
    local aa,bb = math.modf(decimal*100);
    --取到小数的数字
    local cc=string.sub(bb,3,3);
    --取到个位数组
    local dd=string.sub(aa,string.len(aa),string.len(aa));
    --如果个位数字是5同时判断前一位是否偶数
    if cc=="5" and dd%2==0 then
        print(aa*0.01)
    else
        --否则走标准四舍五入
        print(NewRound(decimal));
    end
end

转载于:https://my.oschina.net/uwith/blog/1576146

你可能感兴趣的:(lua 四舍五入)