博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 数字转换成大写
阅读量:5323 次
发布时间:2019-06-14

本文共 4102 字,大约阅读时间需要 13 分钟。

 
/// /// 数字转大写/// /// 数字 /// 
public static string CmycurD(decimal num)        {            string str1 = "零壹贰叁肆伍陆柒捌玖";            //0-9所对应的汉字             string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字             string str3 = "";    //从原num值中取出的值             string str4 = "";    //数字的字符串形式             string str5 = "";  //人民币大写金额形式             int i;    //循环变量             int j;    //num的值乘以100的字符串长度             string ch1 = "";    //数字的汉语读法             string ch2 = "";    //数字位的汉字读法             int nzero = 0;  //用来计算连续的零值是几个             int temp;            //从原num值中取出的值             num = Math.Round(Math.Abs(num), 2);    //将num取绝对值并四舍五入取2位小数             str4 = ((long)(num * 100)).ToString();        //将num乘100并转换成字符串形式             j = str4.Length;      //找出最高位             if (j > 15) { return "溢出"; }            str2 = str2.Substring(15 - j);   //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分             //循环取出每一位需要转换的值             for (i = 0; i < j; i++)            {                str3 = str4.Substring(i, 1);          //取出需转换的某一位的值                 temp = Convert.ToInt32(str3);      //转换为数字                 if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15))                {                    //当所取位数不为元、万、亿、万亿上的数字时                     if (str3 == "0")                    {                        ch1 = "";                        ch2 = "";                        nzero = nzero + 1;                    }                    else                    {                        if (str3 != "0" && nzero != 0)                        {                            ch1 = "零" + str1.Substring(temp * 1, 1);                            ch2 = str2.Substring(i, 1);                            nzero = 0;                        }                        else                        {                            ch1 = str1.Substring(temp * 1, 1);                            ch2 = str2.Substring(i, 1);                            nzero = 0;                        }                    }                }                else                {                    //该位是万亿,亿,万,元位等关键位                     if (str3 != "0" && nzero != 0)                    {                        ch1 = "零" + str1.Substring(temp * 1, 1);                        ch2 = str2.Substring(i, 1);                        nzero = 0;                    }                    else                    {                        if (str3 != "0" && nzero == 0)                        {                            ch1 = str1.Substring(temp * 1, 1);                            ch2 = str2.Substring(i, 1);                            nzero = 0;                        }                        else                        {                            if (str3 == "0" && nzero >= 3)                            {                                ch1 = "";                                ch2 = "";                                nzero = nzero + 1;                            }                            else                            {                                if (j >= 11)                                {                                    ch1 = "";                                    nzero = nzero + 1;                                }                                else                                {                                    ch1 = "";                                    ch2 = str2.Substring(i, 1);                                    nzero = nzero + 1;                                }                            }                        }                    }                }                if (i == (j - 11) || i == (j - 3))                {                    //如果该位是亿位或元位,则必须写上                     ch2 = str2.Substring(i, 1);                }                str5 = str5 + ch1 + ch2;                if (i == j - 1 && str3 == "0")                {                    //最后一位(分)为0时,加上“整”                     str5 = str5 + '整';                }            }            if (num == 0)            {                str5 = "零元整";            }            return str5;        }

 

转载于:https://www.cnblogs.com/mybk/p/7246239.html

你可能感兴趣的文章
freebsd 实现 tab 命令 补全 命令 提示
查看>>
struts1和struts2的区别
查看>>
函数之匿名函数
查看>>
shell习题第16题:查用户
查看>>
实验4 [bx]和loop的使用
查看>>
Redis常用命令
查看>>
2018.11.06 bzoj1040: [ZJOI2008]骑士(树形dp)
查看>>
2019.02.15 bzoj5210: 最大连通子块和(链分治+ddp)
查看>>
redis cluster 集群资料
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
微软职位内部推荐-SOFTWARE ENGINEER II
查看>>
centos系统python2.7更新到3.5
查看>>
C#类与结构体究竟谁快——各种函数调用模式速度评测
查看>>
我到底要选择一种什么样的生活方式,度过这一辈子呢:人生自由与职业发展方向(下)...
查看>>
poj 题目分类
查看>>
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
套接口和I/O通信
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>