lua數字轉化爲字符串(千,萬,億)
--數字過長,轉化爲帶萬,億字符串保留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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.