刚入门。求指导

问题描述

输入一串数字转换为汉语读数。比如1234,转换为壹仟贰佰三十四。。。。用windows窗体设计。求大神指导,小女胜感激。

解决方案

解决方案二:

解决方案三:
///<summary>///转换数字金额主函数(包括小数)///</summary>///<paramname="str">数字字符串</param>///<returns>转换成中文大写后的字符串或者出错信息提示字符串</returns>publicstringConvertSum(stringstr){if(!IsPositveDecimal(str))return"格式错误!";if(Double.Parse(str)>999999999999.99)return"金额溢出";char[]ch=newchar[1];ch[0]='.';//小数点string[]splitstr=null;//定义按小数点分割后的字符串数组splitstr=str.Split(ch[0]);//按小数点分割字符串if(splitstr.Length==1)//只有整数部分returnConvertData(str)+"圆整";else//有小数部分{stringrstr;rstr=ConvertData(splitstr[0])+"圆";//转换整数部分stringxiaoshu=ConvertXiaoShu(splitstr[1]);rstr+=(xiaoshu=="")?"整":xiaoshu;//转换小数部分returnrstr;}}///<summary>///判断是否是正数字字符串///</summary>///<paramname="str">判断字符串</param>///<returns>如果是数字,返回true,否则返回false</returns>publicboolIsPositveDecimal(stringstr){Decimald;try{d=Decimal.Parse(str);}catch(Exception){returnfalse;}if(d>0)returntrue;elsereturnfalse;}///<summary>///转换数字(整数)///</summary>///<paramname="str">需要转换的整数数字字符串</param>///<returns>转换成中文大写后的字符串</returns>publicstringConvertData(stringstr){stringtmpstr="";stringrstr="";intstrlen=str.Length;if(strlen<=4)//数字长度小于四位{rstr=ConvertDigit(str);}else{if(strlen<=8)//数字长度大于四位,小于八位{tmpstr=str.Substring(strlen-4,4);//先截取最后四位数字rstr=ConvertDigit(tmpstr);//转换最后四位数字tmpstr=str.Substring(0,strlen-4);//截取其余数字//将两次转换的数字加上萬后相连接rstr=String.Concat(ConvertDigit(tmpstr)+"萬",rstr);rstr=rstr.Replace("零萬","萬");rstr=rstr.Replace("零零","零");}elseif(strlen<=12)//数字长度大于八位,小于十二位{tmpstr=str.Substring(strlen-4,4);//先截取最后四位数字rstr=ConvertDigit(tmpstr);//转换最后四位数字tmpstr=str.Substring(strlen-8,4);//再截取四位数字rstr=String.Concat(ConvertDigit(tmpstr)+"萬",rstr);tmpstr=str.Substring(0,strlen-8);rstr=String.Concat(ConvertDigit(tmpstr)+"億",rstr);rstr=rstr.Replace("零億","億");rstr=rstr.Replace("零萬","零");rstr=rstr.Replace("零零","零");rstr=rstr.Replace("零零","零");}}strlen=rstr.Length;if(strlen>=2){switch(rstr.Substring(strlen-2,2)){case"佰零":rstr=rstr.Substring(0,strlen-2)+"佰";break;case"仟零":rstr=rstr.Substring(0,strlen-2)+"仟";break;case"萬零":rstr=rstr.Substring(0,strlen-2)+"萬";break;case"億零":rstr=rstr.Substring(0,strlen-2)+"億";break;}}returnrstr;}///<summary>///转换数字(小数部分)///</summary>///<paramname="str">需要转换的小数部分数字字符串</param>///<returns>转换成中文大写后的字符串</returns>publicstringConvertXiaoShu(stringstr){intstrlen=str.Length;stringrstr;if(strlen==1){rstr=ConvertChinese(str)+"角";returnrstr;}else{stringtmpstr=str.Substring(0,1);rstr=ConvertChinese(tmpstr)+"角";tmpstr=str.Substring(1,1);rstr+=ConvertChinese(tmpstr)+"分";rstr=rstr.Replace("零分","");rstr=rstr.Replace("零角","");returnrstr;}}///<summary>///转换数字///</summary>///<paramname="str">转换的字符串(四位以内)</param>///<returns></returns>publicstringConvertDigit(stringstr){intstrlen=str.Length;stringrstr="";switch(strlen){case1:rstr=ConvertChinese(str);break;case2:rstr=Convert2Digit(str);break;case3:rstr=Convert3Digit(str);break;case4:rstr=Convert4Digit(str);break;}rstr=rstr.Replace("拾零","拾");strlen=rstr.Length;returnrstr;}///<summary>///转换四位数字///</summary>publicstringConvert4Digit(stringstr){stringstr1=str.Substring(0,1);stringstr2=str.Substring(1,1);stringstr3=str.Substring(2,1);stringstr4=str.Substring(3,1);stringrstring="";rstring+=ConvertChinese(str1)+"仟";rstring+=ConvertChinese(str2)+"佰";rstring+=ConvertChinese(str3)+"拾";rstring+=ConvertChinese(str4);rstring=rstring.Replace("零仟","零");rstring=rstring.Replace("零佰","零");rstring=rstring.Replace("零拾","零");rstring=rstring.Replace("零零","零");rstring=rstring.Replace("零零","零");rstring=rstring.Replace("零零","零");returnrstring;}///<summary>///转换三位数字///</summary>publicstringConvert3Digit(stringstr){stringstr1=str.Substring(0,1);stringstr2=str.Substring(1,1);stringstr3=str.Substring(2,1);stringrstring="";rstring+=ConvertChinese(str1)+"佰";rstring+=ConvertChinese(str2)+"拾";rstring+=ConvertChinese(str3);rstring=rstring.Replace("零佰","零");rstring=rstring.Replace("零拾","零");rstring=rstring.Replace("零零","零");rstring=rstring.Replace("零零","零");returnrstring;}///<summary>///转换二位数字///</summary>publicstringConvert2Digit(stringstr){stringstr1=str.Substring(0,1);stringstr2=str.Substring(1,1);stringrstring="";rstring+=ConvertChinese(str1)+"拾";rstring+=ConvertChinese(str2);rstring=rstring.Replace("零拾","零");rstring=rstring.Replace("零零","零");returnrstring;}///<summary>///将一位数字转换成中文大写数字///</summary>publicstringConvertChinese(stringstr){//"零壹贰叁肆伍陆柒捌玖拾佰仟萬億圆整角分"stringcstr="";switch(str){case"0":cstr="零";break;case"1":cstr="壹";break;case"2":cstr="贰";break;case"3":cstr="叁";break;case"4":cstr="肆";break;case"5":cstr="伍";break;case"6":cstr="陆";break;case"7":cstr="柒";break;case"8":cstr="捌";break;case"9":cstr="玖";break;}return(cstr);}

解决方案四:
来个牛的//两种简单的C#小写数字金额转换成大写人民币金额的方法//第一种最简单的方法是使用正则表达式,这种我是彻底服了//usingSystem.Text.RegularExpressions;//首先引入命名空间privatestringMoneyToUpper(stringmoney){strings=double.Parse(money).ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A");stringd=Regex.Replace(s,@"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[.]|$))))","${b}${z}");returnRegex.Replace(d,".",delegate(Matchm){return"负圆空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟万億兆京垓秭穰"[m.Value[0]-'-'].ToString();});}//第二种其实也挺简单的,用数组:privatestringMoneyToUpper1(stringmoney){//将小写金额转换成大写金额doubleMyNumber=Convert.ToDouble(money);String[]MyScale={"分","角","圆","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","兆","拾","佰","仟"};String[]MyBase={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};StringM="";boolisPoint=false;if(money.IndexOf(".")!=-1){money=money.Remove(money.IndexOf("."),1);isPoint=true;}for(inti=money.Length;i>0;i--){intMyData=Convert.ToInt16(money[money.Length-i].ToString());//?M+=MyBase[MyData];//?if(isPoint==true){M+=MyScale[i-1];//?}else{M+=MyScale[i+1];//?}}returnM;}

longnum=987878;stringUpper=MoneyToUpper(num.ToString());stringUpper1=MoneyToUpper1(num.ToString());string[]reslut=newstring[20];/*Upper="玖拾捌万柒仟捌佰柒拾捌圆"Upper1="玖拾捌万柒仟捌佰柒拾捌圆"*/*/

解决方案五:
这个有统一的方法,搜索一大把

时间: 2024-09-02 09:50:37

刚入门。求指导的相关文章

c#的应用,刚入门求指教。

问题描述 c#的应用,刚入门求指教. 怎么样导入导出excel表格,求详解,谢谢各位大神!!!!!用c#语言实现,......... 解决方案 大致分为两类,一个是用Office自身的VBAhttp://www.cnblogs.com/xiaolifeidao/p/3651940.htmlhttp://www.cnblogs.com/zhangqifeng/archive/2009/06/10/1500537.html 一个是用NPOIhttp://www.cnblogs.com/colder/

linux-Linux 刚刚入门,很多东西很混乱,求指导

问题描述 Linux 刚刚入门,很多东西很混乱,求指导 刚学linux,求指导.安装的是ubunto 14.04想问一下root身份和一般用户身份在终端怎么区分,为甚么我在终端输入su-命令切换到root身份会提示认证错误.sudo命令在一般用户和root下都可以用吗?谢谢 解决方案 1.ubuntu的GNOME模拟终端默认是会显示"用户名@计算机名:路径$",没显示就看命令符号,#就是root 2.sudo是临时提升用户权限的命令,root用户拥有管理计算机的所有权限,就没有使用的必

deepleraning-关于Deepleraning的基础入门,求指导!

问题描述 关于Deepleraning的基础入门,求指导! 刚开始接触Deepleraning这个方向,想多学习一点这方面的东西和了解一下需要的知识和要看的书籍,希望有经验的大牛们推荐一下! 解决方案 http://www.zhihu.com/question/26006703 解决方案二: http://blog.csdn.net/zouxy09/article/details/8775360/这个博客不错,简单容易,容易上手

测试-杭电c入门简单问题 求指导一下

问题描述 杭电c入门简单问题 求指导一下 题目如下输入n(n<=100)个整数,按照绝对值从大到小排序后输出.题目保证对于每一个测试实例,所有的数的绝对值都不相等. Input输入数据有多组,每组占一行,每行的第一个数字为n接着是n个整数,n=0表示输入数据的结束,不做处理. Output对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开.每个测试实例占一行. Sample Input3 3 -4 24 0 1 2 -30 Sample Output-4 3 2-3 2 1 0 Aut

css3-CSS3的一个小问题,刚入门不太懂求解惑

问题描述 CSS3的一个小问题,刚入门不太懂求解惑 <div class="box"> <div class="cube1"></div> <div class="cube2"></div> </div> --------- .box { width: 100px; height: 100px; position: relative; margin: 100px auto;

代码-求指导jQuery入门知识

问题描述 求指导jQuery入门知识 脚本代码 $(document).ready(function () { function checkFields() { alert($("#name").attr("value")); alert($("#email").attr("value")); return ($("#name").attr("value") && $(&

指针-大神求指导简单C语言问题 刚刚入门

问题描述 大神求指导简单C语言问题 刚刚入门 #include"stdio.h" #include"stdlib.h" #include"string.h" typedef struct _Teacher { struct _Teacher *t; }Teacher; int main() { Teacher teacher1; Teacher teacher2; Teacher * head1 = &teacher1; Teacher

java 关于扩展类 很基础的一个 刚接触java求指导

问题描述 java 关于扩展类 很基础的一个 刚接触java求指导 已经有了一个类 public class Person{ } 之后又有一个Person类的扩展类Student类 那么在 eslipse中编写程序时 是有两个类 对吧?那扩展类Student需要如何创建这个类啊? 解决方案 首先在eclipse中新建两个类,在其中一个类中写main方法写测试代码.测试要依据你的需求看怎么测了. 解决方案二: public Student extends Person{ //extends继承 }

刚入门的测试人员,应该先从何下手,从何了解开始呢,有经验的人指导一下,谢谢!

问题描述 刚入门的测试人员,应该先从何下手,从何了解开始呢,有经验的人指导一下, 解决方案 解决方案二:参考软考中的测试类的大纲进行系统的学习,另外在工作中多跟老员工学习解决方案三:相关的什么事都尽量上手做一遍.虚心学习,多看多思考多提问.解决方案四:该回复于2010-09-29 14:00:37被版主删除解决方案五:如果23岁左右,就别做测试了,做开发去吧....开发比测试好多了....解决方案六:大公司的测试工程师普遍都要强于开发工程师,不论是能力还是待遇解决方案七:多做多问解决方案八:先从

c++-学C++的大二学生求指导

问题描述 学C++的大二学生求指导 现在应该往哪方面拓展啊,我成绩一般般,感觉没学到什么,连一些简单的小应用都不会做 解决方案 同大二路过,自己喜欢学什么旧学咯,兴趣 解决方案二: 熟悉了c++的语法之后,可以开始学MFC了,推荐孙鑫的<VC++深入详解>,刚开始入门会比较难,但是学好这个很有用. 解决方案三: 先学基础,写写小算法,解解基本的练习题,然后写些类,接口,继承等.然后写些应用程序.可以边学这个边学LINUX以后找工作会很有用.都是这么一步步过来的,别急慢慢来,积累的多了就好了.