金钱数字中文转换

 

上次那个只能实现圆以上的转换,这次这个可以转换到角,分:

其中使用了泛型类:

public string ToChineseNumber<T>(T num)

    {

        string[] chinesePos = new string[] { "圆", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿" };

        string[] chinese = new string[] { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };

        string strNum = num.ToString();//要转换数字的字符串形式

        string oneNum = "";//用来存储一个数字

        StringBuilder sb = new StringBuilder();//用来存储转换之后的结果

        int dotPos = strNum.IndexOf(".");

        string integer = "";//整数部分

        if (dotPos != -1)

            integer = strNum.Substring(0, dotPos);

        else

            integer = strNum;

        //下面就可以使用integer保存的整数部分

        while (integer.Length>0)

        {

            //转换整数部分

            int len = integer.Length;//数字长度

            oneNum = integer.Substring(0, 1);//取高位数字

            integer = integer.Substring(1);//取出剩余数字,删掉高位数字

            sb.Append(chinese[int.Parse(oneNum)]);//添加高位数字对应的大写

            sb.Append(chinesePos[len - 1]);//添加数字对应的位权

        }

        //循环完成之后,整数部分转换完成

        if (dotPos != -1)

        {

            //转换小数部分

            string little = strNum.Substring(dotPos + 1);

            if (little.Length>1)

            {

                sb.Append(chinese[int.Parse(little.Substring(0, 1))]);//数字

                sb.Append("角");

                sb.Append(chinese[int.Parse(little.Substring(1, 1))]);//数字

                sb.Append("分");

            }

        }

        return sb.ToString();

    }

这也是上课老师的代码,这里只是发出来,以便别人和自己以后查找用!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值