当前位置: 首页 > 编程日记 > 正文

转换人民币大小金额

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

转载于:https://www.cnblogs.com/tonybinlj/archive/2008/11/04/1326258.html

相关文章:

偏执却管用的 10 条 Java 编程技巧

经过一段时间的编码&#xff08;咦&#xff0c;我已经经历了将近20年的编程生涯&#xff0c;快乐的日子总是过得很快&#xff09;&#xff0c;我们开始感谢那些好习惯。因为&#xff0c;你知道… “任何可能出错的事情&#xff0c;最后都会出错。” 这就是人们为什么喜欢进行“…

如何利用SOM网络进行柴油机故障诊断

如何利用SOM网络进行柴油机故障诊断

leetcode--删除排序链表中的重复元素--python

文章目录题目题目详情示例解题代码思路代码运行结果最佳方案题目 题目详情 给定一个排序链表&#xff0c;删除所有重复的元素&#xff0c;使得每个元素只出现一次。 示例 输入: 1->1->2 输出: 1->2输入: 1->1->2->3->3 输出: 1->2->3解题代码 …

如何使用 UserAccountControl 标志操纵用户帐户属性

转载&#xff1a; http://support.microsoft.com/kb/305144 概要 在打开用户帐户的属性后&#xff0c;单击帐户选项卡&#xff0c;然后选中或清除“帐户选项”对话框中的复选框&#xff0c;则会将数值分配给 UserAccountControl 属性。分配给该属性的值通知 Windows 已启用了哪…

程序员 专属的新年祝福原来是这样的! (附中奖名单)

程序员的新年祝福会是什么样的&#xff1f;我们共收到了97位 OSCer 的回复&#xff0c;以下为支持数排名前十的祝福语&#xff1a; yale8848&#xff08;支持数&#xff1a;10&#xff09; document.write("") &#xff08;小编&#xff1a;捂脸&#xff0c;不过不知…

LSGO代码小组第16周复盘日志

LSGO代码小组第16周复盘日志&#xff0c;汇报人&#xff1a;高勇

leetcode--买股票的最佳时机II--python

文章目录题目题目详情注意示例代码思路解题代码运行结果最佳方案题目 题目详情 给定一个数组&#xff0c;它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;。…

我的广州生活~

步入11月份&#xff0c;天气逐渐转冷&#xff01;本以为广东的冬天是永远的裤头T恤&#xff0c;看来我错了。。。在凉席上抗争了一周&#xff0c;我感冒了两次&#xff0c;看来人毕竟斗不过天&#xff0c;还是乖乖的铺上褥子&#xff0c;等待南国的冬天。他们都说广州的冬天是种…

苹果手表可以运行 ruby 脚本了

不得不佩服啊&#xff01; 各位看下载地址吧https://itunes.apple.com/cn/app/ruby-2.0-for-ios-yun-xing/id727047729?mt8https://yqfile.alicdn.com/d0403806fdff7411060f9b0b059d1f9966c19447.png" >https://yqfile.alicdn.com/5dbd9a02e4252465b9896713a592e092ca…

Matlab与线性代数--广义逆矩阵

本微信图文详细介绍了Matlab中求解广义逆矩阵的方法。

leetcode--无重复字符的最长子串--python

文章目录题目题目详情示例解题代码思路代码运行结果最佳方案题目 题目详情 给定一个字符串&#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长…

TOP语句与Order By语句

默认情况下&#xff0c;如果在子查询&#xff0c;函数&#xff0c;视图中尝试去使用ORDER BY&#xff0c; CREATE VIEW dbo.VSortedOrders ASSELECT orderid, customerid FROM dbo.Orders ORDER BY orderid GO 那么可能会遇到下面的错误 消息 1033&#xff0c;级别 15&#xff…

利用“队列”解决“窗口混乱”问题

本图文利用队列这种数据结构以及多线程技术模拟了银行排队&#xff08;叫号&#xff09;软件的工作流程。

MySQL操作数据库--与MySQL零距离接触1-7

第一章 1-7操作数据库 数据库是一个集合&#xff1a;表 索引等。 MySQL语句规范&#xff1a; 关键字与函数名称全部大写 数据库名称、表名称、字段名称全部小写 SQL语句必须以分号结尾 语法结构&#xff1a; {}&#xff1a;代表必选项 …

leetcode--盛最多水的容器--python

文章目录题目题目详情说明示例解题代码思路代码运行结果最佳方案题目 题目详情 给定 n 个非负整数 a1&#xff0c;a2&#xff0c;…&#xff0c;an&#xff0c;每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线&#xff0c;垂直线 i 的两个端点分别为 (i, ai) 和 (…

创意海报生成器

今天无意中看到一个网站,用来生成一些好玩的图片. http://www.photofunia.com 转载于:https://www.cnblogs.com/victorxu/archive/2008/11/17/1334779.html

基于Go语言来理解Tensorflow

Tensorflow并非一套特定机器学习库——相反&#xff0c;其属于一套通用型计算库&#xff0c;负责利用图形表达计算过程。其核心通过C语言实现&#xff0c;同时亦绑定有多种其它语言。与Python绑定不同的是&#xff0c;Go编程语言绑定不仅允许用户在Go环境当中使用TensorFlow&am…

如何利用BP网络进行神经网络变量筛选

如何利用BP网络进行神经网络变量筛选

校园ACM--总结

文章目录题目1--字母矩阵题目详情示例解题代码思路代码运行结果题目2--二进制反转题目详情示例解题代码思路代码运行结果体会题目1–字母矩阵 题目详情 n阶字母矩阵是由n*n的英文小写字母组成的方阵&#xff0c;满足&#xff1a; 每一条副对角线上的字母相同 不同对角线上的…

阅读笔记 CCL: Cross-modal Correlation Learning with Multi-grained Fusion by Hierarchical Network

总结 CCL: Cross-modal Correlation Learning with Multi-grained Fusion by Hierarchical Network Yuxin Peng, Jinwei Qi, Xin Huang and Yuxin Yuan 常见方法 使用深度神经网络&#xff08;DNN&#xff09;的跨模态检索大体分为两个步骤&#xff1a; 1 The first learning s…

Matlab与线性代数--矩阵的LU分解

本图文详细介绍了Matlab中有关矩阵LU分解的操作。

Silverlight的企业应用

今天在Terry Lee的博客中看到《Silverlight 3 &#xff0d;瞥》&#xff0c;之后找到Scott的原文《Update on Silverlight 2 - and a glimpse of Silverlight 3》&#xff0c;发现在Scott的文章里提到了K2的Blackpoint。 Silverlight已经发布了一段时间&#xff0c;但很少听说…

leetcode--移除元素--python

文章目录题目题目详情示例说明解题代码思路代码小知识运行结果最佳方案题目 题目详情 给定一个数组 nums 和一个值 val&#xff0c;你需要原地移除所有数值等于 val 的元素&#xff0c;返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在原地修改输入数组…

翼の折れた天使たち

人は、時に強がってしまうものだ。 本当は、苦しいのに本当は、甘えたいのにでも、それを素直に表すことができない。ただ、怖いのは、自分を追い込んでしまうこと。そして、悲しいのは、後戻りができなくなること。だから、そうなる前に、自分の弱さを認めてほしい。それは、恥…

小型网站到大型网站-Mysql优化

2019独角兽企业重金招聘Python工程师标准>>> 背景 好的大型网站都是从小型网站慢慢演变来的&#xff0c;都不是一步就设计好的。现在的淘宝&#xff0c;03年创建的时候它也是只有一台服务器&#xff0c;使用的是我们目前还经常使用的lamp架构&#xff08;LinuxApach…

Matlab与线性代数--矩阵的正交分解

本图文介绍了Matlab中对于QR分解的操作。

leetcode--搜索插入位置--python

文章目录题目题目详情示例解题思路思路代码运行结果最佳方案题目 题目详情 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示…

SQL学习笔记-嵌套查询

嵌套查询定义&#xff1a; 1 .指在一个外层查询中包含有另一个内层查询。其中外层查询称为主查询&#xff0c;内层查询称为子查询。 2 .SQL允许多层嵌套&#xff0c;由内而外地进行分析&#xff0c;子查询的结果作为主查询的查询条件 3 .子查询中一般不使用order by子句&#x…

Matlab与线性代数--矩阵的Cholesky分解

本图文介绍了Matlab对正交矩阵的Cholesky分解操作。

IIS 7启用static JSON文件能POST方法

<?xml version"1.0" encoding"UTF-8"?> <configuration> <system.webServer><handlers><add name"JSON" path"*.json" verb"GET,POST" modules"IsapiModule" scriptProcessor"…