將數(shù)字轉(zhuǎn)換為大寫金額

將數(shù)字轉(zhuǎn)換為大寫金額

關(guān)于更多日常使用的公共類的操作方法,可以關(guān)注下小滑輪網(wǎng)站 http://www.feiaci.com/#/self/code

/**
 * 將數(shù)字轉(zhuǎn)換為大寫金額
 */
function changeToChinese (Num) {
    //判斷如果傳遞進(jìn)來的不是字符的話轉(zhuǎn)換為字符
    if(typeof Num == "number") {
        Num = new String(Num);
    };
    Num = Num.replace(/,/g, "") //替換tomoney()中的“,”
    Num = Num.replace(/ /g, "") //替換tomoney()中的空格
    Num = Num.replace(/¥/g, "") //替換掉可能出現(xiàn)的¥字符
    if(isNaN(Num)) { //驗(yàn)證輸入的字符是否為數(shù)字
        //alert("請檢查小寫金額是否正確");
        return "";
    };
    //字符處理完畢后開始轉(zhuǎn)換,采用前后兩部分分別轉(zhuǎn)換
    let part = String(Num).split(".");
    let newchar = "";
    //小數(shù)點(diǎn)前進(jìn)行轉(zhuǎn)化
    for(let i = part[0].length - 1; i >= 0; i--) {
        if(part[0].length > 10) {
            return "";
            //若數(shù)量超過拾億單位,提示
        }
        let tmpnewchar = ""
        let perchar = part[0].charAt(i);
        switch(perchar) {
            case "0":
                tmpnewchar = "零" + tmpnewchar;
                break;
            case "1":
                tmpnewchar = "壹" + tmpnewchar;
                break;
            case "2":
                tmpnewchar = "貳" + tmpnewchar;
                break;
            case "3":
                tmpnewchar = "叁" + tmpnewchar;
                break;
            case "4":
                tmpnewchar = "肆" + tmpnewchar;
                break;
            case "5":
                tmpnewchar = "伍" + tmpnewchar;
                break;
            case "6":
                tmpnewchar = "陸" + tmpnewchar;
                break;
            case "7":
                tmpnewchar = "柒" + tmpnewchar;
                break;
            case "8":
                tmpnewchar = "捌" + tmpnewchar;
                break;
            case "9":
                tmpnewchar = "玖" + tmpnewchar;
                break;
        }
        switch(part[0].length - i - 1) {
            case 0:
                tmpnewchar = tmpnewchar + "元";
                break;
            case 1:
                if(perchar != 0) tmpnewchar = tmpnewchar + "拾";
                break;
            case 2:
                if(perchar != 0) tmpnewchar = tmpnewchar + "佰";
                break;
            case 3:
                if(perchar != 0) tmpnewchar = tmpnewchar + "仟";
                break;
            case 4:
                tmpnewchar = tmpnewchar + "萬";
                break;
            case 5:
                if(perchar != 0) tmpnewchar = tmpnewchar + "拾";
                break;
            case 6:
                if(perchar != 0) tmpnewchar = tmpnewchar + "佰";
                break;
            case 7:
                if(perchar != 0) tmpnewchar = tmpnewchar + "仟";
                break;
            case 8:
                tmpnewchar = tmpnewchar + "億";
                break;
            case 9:
                tmpnewchar = tmpnewchar + "拾";
                break;
        }
        let newchar = tmpnewchar + newchar;
    }
    //小數(shù)點(diǎn)之后進(jìn)行轉(zhuǎn)化
    if(Num.indexOf(".") != -1) {
        if(part[1].length > 2) {
            // alert("小數(shù)點(diǎn)之后只能保留兩位,系統(tǒng)將自動(dòng)截?cái)?);
            part[1] = part[1].substr(0, 2)
        }
        for(i = 0; i < part[1].length; i++) {
            tmpnewchar = ""
            perchar = part[1].charAt(i)
            switch(perchar) {
                case "0":
                    tmpnewchar = "零" + tmpnewchar;
                    break;
                case "1":
                    tmpnewchar = "壹" + tmpnewchar;
                    break;
                case "2":
                    tmpnewchar = "貳" + tmpnewchar;
                    break;
                case "3":
                    tmpnewchar = "叁" + tmpnewchar;
                    break;
                case "4":
                    tmpnewchar = "肆" + tmpnewchar;
                    break;
                case "5":
                    tmpnewchar = "伍" + tmpnewchar;
                    break;
                case "6":
                    tmpnewchar = "陸" + tmpnewchar;
                    break;
                case "7":
                    tmpnewchar = "柒" + tmpnewchar;
                    break;
                case "8":
                    tmpnewchar = "捌" + tmpnewchar;
                    break;
                case "9":
                    tmpnewchar = "玖" + tmpnewchar;
                    break;
            }
            if(i == 0) tmpnewchar = tmpnewchar + "角";
            if(i == 1) tmpnewchar = tmpnewchar + "分";
            newchar = newchar + tmpnewchar;
        }
    }
    //替換所有無用漢字
    while(newchar.search("零零") != -1)
        newchar = newchar.replace("零零", "零");
    newchar = newchar.replace("零億", "億");
    newchar = newchar.replace("億萬", "億");
    newchar = newchar.replace("零萬", "萬");
    newchar = newchar.replace("零元", "元");
    newchar = newchar.replace("零角", "");
    newchar = newchar.replace("零分", "");
    if(newchar.charAt(newchar.length - 1) == "元") {
        newchar = newchar + "整"
    }
    return newchar;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容