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


 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号