推薦閱讀:
例如:將102轉為一百零二;將08轉為八。
local chnnumchar =
local chnunitchar =
local chnunitsection =
local function sectiontochinese(section,chinesenum)
local setionchinese = ""
local unitpos = 1
local zero = true
while(section>0)
dolocal v = section%10
if v == 0 then
if (not zero) then
zero = true
chinesenum = chnnumchar[1] .. chinesenum
endelse
zero = false
setionchinese = chnnumchar[v+1]
setionchinese = setionchinese .. chnunitchar[unitpos]
chinesenum = setionchinese .. chinesenum
end
unitpos = unitpos + 1
section = math.floor(section/10)
endreturn chinesenum
endlocal function numbertochinese(num)
if num == 0 then
return "零"
endlocal unitpos = 1 --節權位標識
local all = ""
local chinesenum = ""
local needzero = false --下一小結是否需要補零
local strins = ""
while(num>0)
dolocal section = num%10000--取最後面的那乙個小節
if needzero then --判斷上一小節千位是否為零,為零就要加上零
all = chnnumchar[1] .. all
endchinesenum = sectiontochinese(section,chinesenum)
if section ~= 0 then
strins = chnunitsection[unitpos]
chinesenum = chinesenum .. strins
else
strins = chnunitsection[1]
chinesenum = strins .. chinesenum
endall = chinesenum .. all
chinesenum = ""
needzero = (section<1000) and (section>0)
num = math.floor(num/10000)
unitpos = unitpos + 1
end
return all
end
中文數字轉阿拉伯數字
這個題與leetcode第13題羅馬數字轉換很相似 13.roman to integer 我開始想用c 處理,進行漢字 個十百千萬 與數字的對應,但是中文字元不屬於ascii碼,直接使用標準類模板裡的string會導致漢字亂碼。所以得使用寬字串wstring和寬字元wchar t 使用stl中的m...
中文數字轉阿拉伯數字
中文數字的權位是明的,阿拉伯數字的權位則隱含在數字的位置中。怎麼將文字權位轉換為數字權位,下面解析。對於十進位制阿拉伯數字,數字的所在位數就是該數字與10的倍數關係。個位就是1倍,十位就是10倍,以此類推。通過這個關係,可以將阿拉伯數字隱含的權位轉換成10的倍數表示,比如 四萬兩千五百一十二 等於 ...
php 阿拉伯數字轉中文數字 方法
function ch num num,mode true char array 零 壹 貳 叄 肆 伍 陸 柒 捌 玖 dw array 拾 佰 仟 萬 億 兆 dec 點 retval if mode preg match all 0 d d num,ar else preg match all...