/// <summary> 
     /// 转换人民币大小金额 
     /// </summary> 
     /// <param name="num">金额</param> 
     /// <returns>返回大写形式</returns> 
     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;
     }

C# 人民币大写金额转换的更多相关文章

  1. 人民币大写金额转换C#方法

    方法的代码如下: /// <summary> /// 人民币大写 /// </summary> /// <param name="input"> ...

  2. FastReport调用Delphi中的自定义函数(人民币大写金额)mtm

    1. 在 FormCreate 中向FastReprot添加函数 (fPrint)窗口 procedure TfPrint.FormCreate(Sender: TObject); frxReport ...

  3. C#转换人民币大写金额

    /// <summary> /// 转换人民币大写金额. /// </summary> public class RMBConverter { /// <summary& ...

  4. FastReport调用Delphi中的人民币大写转换自定义函数

    FastReport调用Delphi中的人民币大写转换自定义函数   FastReport调用Delphi中的人民币大写转换自定义函数 function TJzpzEdit1.MoneyCn(mmje ...

  5. Excel 数值转换为人民币大写金额字符串

    把$B$27单元格中的数值转换为人民币大写金额字符串: 目标单元格填入以下公式: =IF($B$27=0,CONCATENATE(IF($B$27<=0,,TEXT(INT($B$27),&qu ...

  6. python实现人民币大写转换

    问题描述: 银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完成这样一个程序. 在中文大写方式中,0到10以及100.1000.10000被依次表示为: 零 壹 贰 ...

  7. java人民币读法转换

    实现浮点数转换成人民币读法字符串 编写一个程序,将浮点数转换成人民币读法字符串,例如,将1006.333转换为壹千零陆元叁角叁分. 题意分析: 将浮点数分成整数部分和小数部分,分开处理整数部分和小数部 ...

  8. JS进行人民币大小写转换

    //数字金额大写转换(可以处理整数,小数,负数) function upDigit() { digit=$("#digit").html(); n=digit.replace(/\ ...

  9. C#人民币金额大写转换

    人民币金额大小写转换,三行代码 //完善了一下查询到的方法,支持小数,保留2位小数 public string NumGetStr(double Num) { string[] DX_SZ = { & ...

随机推荐

  1. JavaScript—Json操作

    https://www.cnblogs.com/jimmyshan-study/p/11229373.html https://www.cnblogs.com/cailijuan/p/10150918 ...

  2. SpringBoot定时器任务

    Spring Boot使用@Scheduled定时器任务   摘要: Spring Boot之使用@Scheduled定时器任务 假设我们已经搭建好了一个基于Spring Boot项目,首先我们要在A ...

  3. 【转】Redis面试题

    1.谈谈Redis的主从复制流程 有几个重点:主节点负责写,从节点负责读,slave node 主要用来进行横向扩容,做读写分离,扩容的 slave node 可以提高读的吞吐量.必须开启 maste ...

  4. lua 11 闭包,函数的使用

    转自:http://book.luaer.cn/_41.htm 当一个函数内部嵌套另一个函数定义时,内部的函数体可以访问外部的函数的局部变量,这种特征我们称作词法定界.虽然这看起来很清楚,事实并非如此 ...

  5. jQuery中的CSS(四)

    1. css(name|pro|[,val|fn]), 访问匹配元素的样式属性 jQuery 1.8中,当你使用CSS属性在css()或animate()中,我们将根据浏览器自动加上前缀(在适当的时候 ...

  6. 《高性能MySQL》读后感——聚簇索引

    <高性能MySQL>读后感——聚簇索引 聚簇索引并不是一种单独的索引类型,而是一种数据存储方式.比如,InnoDB的聚簇索引使用B+Tree的数据结构存储索引和数据. 当表有聚簇索引时,它 ...

  7. 安装QTP之后造成环境变量java冲突问题的解决方案

    参考:http://www.cnblogs.com/yhcreak/p/6340125.html

  8. PyCharm工具配置和快捷键使用

    PyCharm是一款高效开发Python程序的IDE,包含有自动联想.语法高亮.代码调试.管理多个版本Python解释器等功能.本文主要描述Python界面个性化定制方法(字体.颜色配置).常用配置和 ...

  9. Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) G. Polygons 数论

    G. Polygons Description You are given two integers

  10. Unity Glossary

    https://docs.unity3d.com/2018.4/Documentation/Manual/Glossary.html 2D terms 2D Physics terms AI term ...