<tbody id="mtdpc"><pre id="mtdpc"></pre></tbody>

<rp id="mtdpc"><object id="mtdpc"></object></rp>

<button id="mtdpc"></button>
  • 
    
  • <th id="mtdpc"></th>

  • 產品手冊 實施方案 用戶案例 問題中心

    財務專用:阿拉伯數字轉中文大寫金額(支持小數)

    財務專用:阿拉伯數字轉中文大寫金額(支持小數)
    — 金額小寫數字 整數元 轉換 中文大寫
    function? yuan_zh(szNum)
    ? ? —阿拉伯數字轉中文大寫
    ? ? local szChMoney = “”
    ? ? local iLen = 0
    ? ? local iNum = 0
    ? ? local iAddZero = 0
    ? ? local hzUnit = {“”, “拾”, “佰”, “仟”, “萬”, “拾”, “佰”, “仟”, “億”,”拾”, “佰”, “仟”, “萬”, “十”, “百”, “千”}
    ? ? local hzNum = {“零”, “壹”, “貳”, “叁”, “肆”, “伍”, “陸”, “柒”, “捌”, “玖”}
    ? ? if nil == tonumber(szNum) then
    ? ? ? ? return tostring(szNum)
    ? ? end
    ? ? iLen =string.len(szNum)
    ? ? if iLen > 10 or iLen == 0 or tonumber(szNum) < 0 then
    ? ? ? ? return tostring(szNum)
    ? ? end
    ? ? for i = 1, iLen? do
    ? ? ? ? iNum = string.sub(szNum,i,i)
    ? ? ? ? if iNum == 0 and i ~= iLen then
    ? ? ? ? ? ? iAddZero = iAddZero + 1
    ? ? ? ? else
    ? ? ? ? ? ? if iAddZero > 0 then
    ? ? ? ? ? ? szChMoney = szChMoney..hzNum[1]
    ? ? ? ? end
    ? ? ? ? ? ? szChMoney = szChMoney..hzNum[iNum + 1] –//轉換為相應的數字
    ? ? ? ? ? ? iAddZero = 0
    ? ? ? ? end
    ? ? ? ? if (iAddZero < 4) and (0 == (iLen – i) % 4 or 0 ~= tonumber(iNum)) then
    ? ? ? ? ? ? szChMoney = szChMoney..hzUnit[iLen-i+1]
    ? ? ? ? end
    ? ? end
    ? ? local function removeZero(num)
    ? ? ? ? –去掉末尾多余的 零
    ? ? ? ? num = tostring(num)
    ? ? ? ? local szLen = string.len(num)
    ? ? ? ? local zero_num = 0
    ? ? ? ? for i = szLen, 1, -3 do
    ? ? ? ? ? ? szNum = string.sub(num,i-2,i)
    ? ? ? ? ? ? if szNum == hzNum[1] then
    ? ? ? ? ? ? ? ? zero_num = zero_num + 1
    ? ? ? ? ? ? else
    ? ? ? ? ? ? ? ? break
    ? ? ? ? ? ? end
    ? ? ? ? end
    ? ? ? ? num = string.sub(num, 1,szLen – zero_num * 3)
    ? ? ? ? szNum = string.sub(num, 1,6)
    ? ? ? ? — 開頭的 “一十” 轉成 “十” , 貼近人的讀法
    ? ? ? ? if szNum == hzNum[2]..hzUnit[2] then
    ? ? ? ? ? ? num = string.sub(num, 4, string.len(num))
    ? ? ? ? end
    ? ? ? ? return num
    ? ? end
    ? ? return removeZero(szChMoney)..”圓”
    end
    — 金額小數點 角、分轉換 中文大寫
    function jiaofen_zh(szNum)
    ? ? local szChMoney = “”
    ? ? local iLen = 0
    ? ? local iNum = 0
    ? ? local iAddZero = 0
    ? ? local hzUnit = {“分”, “角”}
    ? ? local hzNum = {“零”, “壹”, “貳”, “叁”, “肆”, “伍”, “陸”, “柒”, “捌”, “玖”}
    ? ? if nil == tonumber(szNum) then
    ? ? ? ? return ‘請輸入金額’
    ? ? end
    ? ? 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
    — 對字符串進行 拆分 ,目的是 將 1309.21 拆分為 1309 及 21 兩個字符串
    function split(str,delimiter)
    ? ? local dLen = string.len(delimiter)
    ? ? local newDeli = ”
    ? ? for i=1,dLen,1 do
    ? ? ? ? newDeli = newDeli .. “[“..string.sub(delimiter,i,i)..”]”
    ? ? end
    ? ? local locaStart,locaEnd = string.find(str,newDeli)
    ? ? local arr = {}
    ? ? local n = 1
    ? ? while locaStart ~= nil
    ? ? do
    ? ? ? ? if locaStart>0 then
    ? ? ? ? ? ? arr[n] = string.sub(str,1,locaStart-1)
    ? ? ? ? ? ? n = n + 1
    ? ? ? ? end
    ? ? ? ? str = string.sub(str,locaEnd+1,string.len(str))
    ? ? ? ? locaStart,locaEnd = string.find(str,newDeli)
    ? ? end
    ? ? if str ~= nil then
    ? ? ? ? arr[n] = str
    ? ? end
    ? ? return arr
    end
    — 需要判斷,金額是否包含小數點,若 包含小數點,需要將小數點前 設置為:strYuan ; 小數點后 設置為:strJiaoFen
    local strYuan,strJiaoFen,strDaxie,strOldjine
    strOldjine = “104567096”? — 將來這個數字賦值的時候,小數點要保留2位,最好小數第二是0要處理一下
    t = split(strOldjine, “.”)? ? ?— 將 124567.09 拆分為 124567 及 09 兩個字符串
    — 給 金額 整數元 賦值; 給 金額 角分 賦值
    local strY = t[1]
    local strJ = t[2]
    –小數點前整數 元(需獨立獲?。?/div>
    strYuan = yuan_zh(strY)
    — 金額 的小數點前的 大寫
    strDaxie = strYuan
    –strJ小數點后 角分 (需獨立獲?。?/div>
    if strJ ~= nil then
    ? ? strJiaoFen = jiaofen_zh(strJ)
    ? ? — 完整大寫金額 拼接后完成
    ? ? strDaxie = strDaxie..strJiaoFen
    end
    — for i = 1 ,200 do
    ? ?print(strDaxie)
    — end
    標簽:手冊方案腳本 上一篇: 下一篇:
    展開更多
    預約軟件體驗

    loading...

    99精品国产一区二区三区不卡
    <tbody id="mtdpc"><pre id="mtdpc"></pre></tbody>

    <rp id="mtdpc"><object id="mtdpc"></object></rp>

    <button id="mtdpc"></button>
  • 
    
  • <th id="mtdpc"></th>