1. /// <summary>
  2. /// 转换人民币大写金额。
  3. /// </summary>
  4. public class RMBConverter
  5. {
  6. /// <summary>
  7. /// 转换人民币大小金额
  8. /// </summary>
  9. /// <param name="num">金额</param>
  10. /// <returns>返回大写形式</returns>
  11. public static string toRMB(decimal num)
  12. {
  13. string str1 = "零壹贰叁肆伍陆柒捌玖"; //0-9所对应的汉字
  14. string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字
  15. string str3 = ""; //从原num值中取出的值
  16. string str4 = ""; //数字的字符串形式
  17. string str5 = ""; //人民币大写金额形式
  18. int i; //循环变量
  19. int j; //num的值乘以100的字符串长度
  20. string ch1 = ""; //数字的汉语读法
  21. string ch2 = ""; //数字位的汉字读法
  22. int nzero = ; //用来计算连续的零值是几个
  23. int temp; //从原num值中取出的值
  24. num = Math.Round(Math.Abs(num), ); //将num取绝对值并四舍五入取2位小数
  25. str4 = ((long)(num * )).ToString(); //将num乘100并转换成字符串形式
  26. j = str4.Length; //找出最高位
  27. if (j > ) { return "溢出"; }
  28. str2 = str2.Substring( - j); //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分
  29. //循环取出每一位需要转换的值
  30. for (i = ; i < j; i++)
  31. {
  32. str3 = str4.Substring(i, ); //取出需转换的某一位的值
  33. temp = Convert.ToInt32(str3); //转换为数字
  34. if (i != (j - ) && i != (j - ) && i != (j - ) && i != (j - ))
  35. {
  36. //当所取位数不为元、万、亿、万亿上的数字时
  37. if (str3 == "")
  38. {
  39. ch1 = "";
  40. ch2 = "";
  41. nzero = nzero + ;
  42. }
  43. else
  44. {
  45. if (str3 != "" && nzero != )
  46. {
  47. ch1 = "零" + str1.Substring(temp * , );
  48. ch2 = str2.Substring(i, );
  49. nzero = ;
  50. }
  51. else
  52. {
  53. ch1 = str1.Substring(temp * , );
  54. ch2 = str2.Substring(i, );
  55. nzero = ;
  56. }
  57. }
  58. }
  59. else
  60. {
  61. //该位是万亿,亿,万,元位等关键位
  62. if (str3 != "" && nzero != )
  63. {
  64. ch1 = "零" + str1.Substring(temp * , );
  65. ch2 = str2.Substring(i, );
  66. nzero = ;
  67. }
  68. else
  69. {
  70. if (str3 != "" && nzero == )
  71. {
  72. ch1 = str1.Substring(temp * , );
  73. ch2 = str2.Substring(i, );
  74. nzero = ;
  75. }
  76. else
  77. {
  78. if (str3 == "" && nzero >= )
  79. {
  80. ch1 = "";
  81. ch2 = "";
  82. nzero = nzero + ;
  83. }
  84. else
  85. {
  86. if (j >= )
  87. {
  88. ch1 = "";
  89. nzero = nzero + ;
  90. }
  91. else
  92. {
  93. ch1 = "";
  94. ch2 = str2.Substring(i, );
  95. nzero = nzero + ;
  96. }
  97. }
  98. }
  99. }
  100. }
  101. if (i == (j - ) || i == (j - ))
  102. {
  103. //如果该位是亿位或元位,则必须写上
  104. ch2 = str2.Substring(i, );
  105. }
  106. str5 = str5 + ch1 + ch2;
  107. if (i == j - && str3 == "")
  108. {
  109. //最后一位(分)为0时,加上“整”
  110. str5 = str5 + '整';
  111. }
  112. }
  113. if (num == )
  114. {
  115. str5 = "零元整";
  116. }
  117. return str5;
  118. }
  119.  
  120. }

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

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

    /// <summary>       /// 转换人民币大小金额       /// </summary>       /// <param name="nu ...

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

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

  3. RMB转换人民币大小金额

    MXS&Vincene  ─╄OvЁ  &0000015 ─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好 ...

  4. ASP.NET转换人民币大小金额

    public class DecimalToRMB    {        /// <summary>         /// 转换人民币大小金额         /// </sum ...

  5. C#随机生成不重复邀请码&创建登录Token&转换人民币大小金额

    /// <summary> /// 创建登陆Token /// </summary> /// <param name="length">< ...

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

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

  7. PHP算法--将数字金额转换成大写金额

    最近在看一些PHP算法题,遇到一个将数字金额转换成大写金额的小算法题,这里贴出自己的一个例子. 注:这个小算法适用于10万以内的金额. <?php //$num = 12345.67; func ...

  8. ORACLE数字转换人民币大写

    ORACLE 数字转换人民币大写     示例.   数字                    :183066999230.68 人民币大写        :壹仟捌佰参拾亿陆仟陆佰玖拾玖万玖仟贰佰参 ...

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

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

随机推荐

  1. hdu 2871 Memory Control(线段树)

    题目链接:hdu 2871 Memory Control 题目大意:模拟一个内存分配机制. Reset:重置,释放全部空间 New x:申请内存为x的空间,输出左地址 Free x:释放地址x所在的内 ...

  2. oracle经常使用函数(1)

    1.返回与指定的字符相应的十进制数 select ascii('A') A,ascii('z') a,ascii('12') 一打,ascii(' ') kg from dual; 2.返回与指定十进 ...

  3. Android开发之httpclient文件上传实现

    文件上传可能是一个比較耗时的操作,假设为上传操作带上进度提示则能够更好的提高用户体验,最后效果例如以下图: 项目源代码:http://download.csdn.net/detail/shinay/4 ...

  4. 转:Exception loading sessions from persistent storage

    直用tomcat一段时间都正常无事,最近一次启动tomcat就发生以下异常: 严重: IOException while loading persisted sessions: java.io.EOF ...

  5. LVS+Keepalived(DR模式)学习笔记

    1.简述 在互联网的中型项目中,单服务器往往已经无法满足业务本身的性能要求,这时候就会平行扩展,把负载分摊到数台服务器上(集群).一般实现集群有DNS轮询,LVS,nginx负载均衡. 集群主要目的包 ...

  6. 【ubantu】在Ubuntu上安装tar.gz,tar.bz以及deb文件(例:libreoffice安装)

    参考文章: https://blog.csdn.net/zhuquan945/article/details/52986712 ==================================== ...

  7. FFmpeg与libx264 x264接口对应关系源代码分析

    源代码位于“libavcodec/libx264.c”中.正是有了这部分代码,使得FFmpeg可以调用libx264编码H.264视频.  从图中可以看出,libx264对应的AVCodec结构体ff ...

  8. 有关于__align(n) ,内存对齐

    __align __align 关键字指示编译器在 n 字节边界上对齐变量. __align 是一个存储类修饰符.它不影响函数的类型. 语法 __align(n) 其中: n 是对齐边界. 对于局部变 ...

  9. 五分钟上手Git

    团队开发中.遵循一个合理.清晰的Git使用流程.是非常重要的.否则,每一个人都提交一堆杂乱无章的commit,项目非常快就会变得难以协调和维护.以下是ThoughtBot 的Git使用规范流程.我从中 ...

  10. Binding中使用RelativeSource

    问题:当前View有一个DataGrid,其DataGridTemplateColum设置了一个ComboBox. 其对应的VM是local:ViewMode,含有ModelValue和myLIst属 ...