#實用小函數#阿拉伯數字轉中文數字

話不多說,先看代碼。

    /**數字轉中文 */
    private DigitToChinese(digit: number): string
    {
        let chnNum = ["零","一","二","三","四","五","六","七","八","九"];
        let chnNumUnit = ["","十","百","千"];
        let tmp = "";
        let chnString = "";
        let zero = true;
        let unitIndex = 0;
        let isTen = false;
        if(digit > 9 && digit < 20)
        {
            isTen = true;
        }
        while(digit > 0)
        {
            let num = digit % 10;
            if(num === 0)
            {
                if(!zero)
                {
                    zero = true;
                    chnString = chnNum[num] + chnString;
                }
            }
            else
            {
                zero = false;
                if(isTen && unitIndex == 1)
                {
                    tmp = "";
                }
                else
                {
                    tmp = chnNum[num];
                }
                tmp += chnNumUnit[unitIndex];
                chnString = tmp + chnString;
            }
            unitIndex++;
            digit = Math.floor(digit / 10);
        }
        return chnString;
    }

這裏面比較特別的一點就是10-19,一般中文寫作十,十九,而不會寫作一十,一十九,所以多了可個isTen這個布爾值。

有想到的再補充,歡迎指出錯誤和探討。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章