--数字过长,转化为带万,亿字符串保留4位有效数
function NumToStr(num)
if type(num) == "string" then
return num
end
if type(num) ~= "number" then
logError("数字转字符串错误")
return num
end
local str = ""
if num > 99999 and num <= 999999 then
return tostring(ConfigNum(math.floor(num * 100 / 10000) * 0.01)).."万"
elseif num > 999999 and num <= 10000000 then
return tostring(ConfigNum(math.floor(num * 10 / 10000) * 0.1)).."万"
elseif num > 10000000 and num <= 99999999999 then
return tostring(ConfigNum(math.floor(num * 100 / 100000000) * 0.01)).."亿"
elseif num > 99999999999 then
return tostring(ConfigNum(math.floor(num * 10 / 100000000) * 0.1)).."亿"
else
return ConfigNum(num)
end
end
function ConfigNum(num)
t1,t2 = math.modf(num)
if t2 == 0 then
return t1
end
return num
end
--带万,亿字符串转化为数字
function StrToNum(str)
local num = tonumber(str)
if num ~= nil then
return num
end
LuaReomve(str, " ")
num = (string.sub(str, 1, -4))
local str2 = string.sub(str, -3, -1)
if str2 == "万" then
num = num * 10000
elseif str2 == "亿" then
num = num * 100000000
else
logError("字符串不能转化为数字,字符串为:"..str)
return 0
end
return num
end
function NumToStr(num)
if type(num) == "string" then
return num
end
if type(num) ~= "number" then
logError("数字转字符串错误")
return num
end
local str = ""
if num > 99999 and num <= 999999 then
return tostring(ConfigNum(math.floor(num * 100 / 10000) * 0.01)).."万"
elseif num > 999999 and num <= 10000000 then
return tostring(ConfigNum(math.floor(num * 10 / 10000) * 0.1)).."万"
elseif num > 10000000 and num <= 99999999999 then
return tostring(ConfigNum(math.floor(num * 100 / 100000000) * 0.01)).."亿"
elseif num > 99999999999 then
return tostring(ConfigNum(math.floor(num * 10 / 100000000) * 0.1)).."亿"
else
return ConfigNum(num)
end
end
function ConfigNum(num)
t1,t2 = math.modf(num)
if t2 == 0 then
return t1
end
return num
end
--带万,亿字符串转化为数字
function StrToNum(str)
local num = tonumber(str)
if num ~= nil then
return num
end
LuaReomve(str, " ")
num = (string.sub(str, 1, -4))
local str2 = string.sub(str, -3, -1)
if str2 == "万" then
num = num * 10000
elseif str2 == "亿" then
num = num * 100000000
else
logError("字符串不能转化为数字,字符串为:"..str)
return 0
end
return num
end