#实用小函数#阿拉伯数字转中文数字

本文深入解析了一种将数字转换为中文表示的算法,特别关注了10至19之间的特殊处理,避免出现如“一十”、“一十九”的表述。通过循环遍历和条件判断,实现了数字到中文字符串的准确转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

话不多说,先看代码。

    /**数字转中文 */
    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这个布尔值。

有想到的再补充,欢迎指出错误和探讨。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值