Rmb.cs 
    using System;
using System; 
 
 
 namespace Test
namespace Test 
 {
{ 
 /// <summary>
    /// <summary> 
 /// Rmb 的摘要说明。
    /// Rmb 的摘要说明。 
 /// </summary>
    /// </summary> 
 public class Rmb
    public class Rmb 
 {
    { 
 /// <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; 
 }
        } 
 
 
 /// <summary>
        /// <summary> 
 /// 一个重载,将字符串先转换成数字在调用CmycurD(decimal num)
        /// 一个重载,将字符串先转换成数字在调用CmycurD(decimal num) 
 /// </summary>
        /// </summary> 
 /// <param name="num">用户输入的金额,字符串形式未转成decimal</param>
        /// <param name="num">用户输入的金额,字符串形式未转成decimal</param> 
 /// <returns></returns>
        /// <returns></returns> 
 public static string CmycurD(string numstr)
        public static string CmycurD(string numstr) 
 {
        { 
 try
            try 
 {
            { 
 decimal num = Convert.ToDecimal(numstr);
                decimal num = Convert.ToDecimal(numstr); 
 return CmycurD(num);
                return CmycurD(num); 
 }
            } 
 catch
            catch 
 {
            { 
 return "非数字形式!";
                return "非数字形式!"; 
 }
            } 
 }
        } 
 }
    } 
 }
} 
   
在我CSDNBlog中我发表了一片关于《人民币大写转化函数(ASP版和JavaScript版)》的文章,大家感兴趣可以去看看。
 using System;
using System; 
 
 
 namespace Test
namespace Test 
 {
{ 
 /// <summary>
    /// <summary> 
 /// Rmb 的摘要说明。
    /// Rmb 的摘要说明。 
 /// </summary>
    /// </summary> 
 public class Rmb
    public class Rmb 
 {
    { 
 /// <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; 
 }
        } 
 
 
 /// <summary>
        /// <summary> 
 /// 一个重载,将字符串先转换成数字在调用CmycurD(decimal num)
        /// 一个重载,将字符串先转换成数字在调用CmycurD(decimal num) 
 /// </summary>
        /// </summary> 
 /// <param name="num">用户输入的金额,字符串形式未转成decimal</param>
        /// <param name="num">用户输入的金额,字符串形式未转成decimal</param> 
 /// <returns></returns>
        /// <returns></returns> 
 public static string CmycurD(string numstr)
        public static string CmycurD(string numstr) 
 {
        { 
 try
            try 
 {
            { 
 decimal num = Convert.ToDecimal(numstr);
                decimal num = Convert.ToDecimal(numstr); 
 return CmycurD(num);
                return CmycurD(num); 
 }
            } 
 catch
            catch 
 {
            { 
 return "非数字形式!";
                return "非数字形式!"; 
 }
            } 
 }
        } 
 }
    } 
 }
} 
   在我CSDNBlog中我发表了一片关于《人民币大写转化函数(ASP版和JavaScript版)》的文章,大家感兴趣可以去看看。
==========================================
作者:二十四画生
转载请注明来源于博客园——二十四画生的Blog,并保留有原文链接。
 
                    
                     
                    
                 
                    
                 
 
        

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