1. 程式人生 > >lua中數字轉成人民幣大寫形式

lua中數字轉成人民幣大寫形式

最近寫的一個函式,需要對大家有幫助

--文字轉換
function  Bank:numberToString(szNum)
	local szChMoney = ""
	local szNum = 0
	local iLen = 0
	local iNum = 0
	local iAddZero = 0
	local hzUnit = {"", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "億", "拾", "佰", "仟", "萬", "拾", "佰", "仟"}
	local hzNum = {"零", "壹", "貳", "叄", "肆", "伍", "陸", "柒", "捌", "玖"}

  if nil == tonumber(szNum) then
    return '錯誤的數字'
  end
  
  szNum = '10000001'
  iLen =string.len(szNum) 

   if iLen > 15 or iLen == 0 or tonumber(szNum) < 0 then
      return "錯誤的數字" 
    end
  local i = 0
  for i = 1, iLen  do 
    iNum = string.sub(szNum,i,i)
    if iNum == 0 then
      iAddZero = iAddZero + 1
    else
      if iAddZero > 0 then
        szChMoney = szChMoney..hzNum[1]  
      end

      szChMoney = szChMoney..hzNum[iNum + 1] --//轉換為相應的數字
      iAddZero = 0

    end

    if iNum ~=0 or iLen-i==3 or iLen-i==11 or ((iLen-i+1)%8==0 and iAddZero<4) then
      szChMoney = szChMoney..hzUnit[iLen-i+1]
    end

  end

  return szChMoney

end