function math.getPreciseDecimalRound(nNum, n)
n = n or0;
n = math.floor(n)if n <0then
n =0;endlocal format ="%.".. n .."f"return string.format(format, nNum)end
精确小数位数(去末尾0)
function math.getPreciseDecimalFloor(nNum, n)iftype(nNum)~="number"thenreturn nNum
end
n = n or0
n = math.floor(n)if n <0then
n =0endlocal nDecimal =10^ n
local nTemp = math.floor(nNum * nDecimal)local nRet = nTemp / nDecimal
return nRet
end
数值转换
-- 转换数值--[[
转换规则:
7位数以下全显示 X,XXX,XXX
8位数显示 XX,XXX K
9-12位数 XXX,XXX M
如果最终显示的 数字少于 5 位,就保留2位小数,否则不保留
--]]functionConvertNumber(num,exactvalue)
num =tonumber(num)
exactvalue = exactvalue or0;if num <0thenreturn"0"endlocal newNum =""-- 小于五位数if num <10000then
newNum = math.getPreciseDecimalFloor(num,exactvalue)elseif num <10000000then
num = math.floor(num)
newNum =tostring(num)elselocal len = string.len(math.floor(num))-- 八位数if len ==8then
num = num /1000-- 小于五位 保留两位小数if string.len(math.floor(num))<5then
num = math.getPreciseDecimalFloor(num,exactvalue)else
num = math.floor(num)end
newNum = num .." K"else
num = num /1000000if string.len(math.floor(num))<5then
num = math.getPreciseDecimalFloor(num,exactvalue)else
num = math.floor(num)end
newNum = num .." M"endendreturn newNum
end