如何将大写金额转换成小写?

问题描述

网上只有小写转大写的,有谁能帮我找个大写转小写的?(写代码能实现,不过没时间写和测试了,各位帮帮忙给我找找)多谢了!

解决方案

解决方案二:
privatefloatgetMoney(stringstrBig){stringstrExp="";string[]arrBig=newstring[]{"整","","零","+0","壹","+1","贰","+2","叁","+3","肆","+4","伍","+5","陆","+6","柒","+7","捌","+8","玖","+9","分","*0.01","角","*0.1","元","*1","拾","*10.00","佰","*100.00","仟","*1000.00","万","*10000.00","亿","*100000000.00"};for(inti=0;i<strBig.Length;i++){for(intj=0;j<arrBig.Length-1;j+=2){if(arrBig[j]==strBig[i].ToString()){strExp+=arrBig[j+1].ToString();continue;}}}objectret=newDataTable().Compute(strExp,"");returnfloat.Parse(ret.ToString());//Console.WriteLine(getMoney("玖仟零贰拾壹元陆角肆分"));//Console.WriteLine(getMoney("玖仟万亿零贰拾壹元陆角肆分"));}

解决方案三:
publicstaticDecimalGetDecimal(objectsNum){returnGetDecimal(sNum,0);}publicstaticDecimalGetDecimal(objectsNum,DecimaliDefault){returnGetDecimal(sNum,0,-1);}publicstaticDecimalGetDecimal(objectsNum,DecimaliDefault,intiDotNum){try{Decimald=Convert.ToDecimal(sNum);if(iDotNum==-1){strings=d.ToString();for(inti=s.Length-1;i>=0;i--){if(s.IndexOf('.')>-1&&(s[i]=='0'||s[i]=='.')){s=s.Substring(0,s.Length-1);}else{break;}}d=Convert.ToDecimal(s);returnd;}else{returnMath.Round(d,iDotNum);}publicstaticDecimalGetDecimal(objectsNum){returnGetDecimal(sNum,0);}publicstaticDecimalGetDecimal(objectsNum,DecimaliDefault){returnGetDecimal(sNum,0,-1);}publicstaticDecimalGetDecimal(objectsNum,DecimaliDefault,intiDotNum){try{Decimald=Convert.ToDecimal(sNum);if(iDotNum==-1){strings=d.ToString();for(inti=s.Length-1;i>=0;i--){if(s.IndexOf('.')>-1&&(s[i]=='0'||s[i]=='.')){s=s.Substring(0,s.Length-1);}else{break;}}d=Convert.ToDecimal(s);returnd;}else{returnMath.Round(d,iDotNum);}privatestaticstringUpperMoney(stringsNum,string[]sUpperNum,string[]upperUnit){returnUpperMoney(sNum,sUpperNum,upperUnit,false);}privatestaticstringUpperMoney(stringsNum,string[]sUpperNum,string[]upperUnit,boolb){char[]cNums=sNum.ToCharArray();StringBuildersb=newStringBuilder();for(inti=0;i<sNum.Length;i++){intiNum=int.Parse(cNums[i].ToString());stringunit=string.Empty;if(iNum!=0){if(b)unit=upperUnit[i];elseunit=upperUnit[sNum.Length-i-1];}elseif(AddUnitAtZero(sNum.Length-i)){if(!b)unit=upperUnit[sNum.Length-i-1];}sb.Append(sUpperNum[iNum]+unit);}returnReplaceInvalid(sb.ToString());}privatestaticboolAddUnitAtZero(intindex){for(inti=0;i<8;i++){if(index==4*i+1)returntrue;}returnfalse;}privatestaticstringReplaceInvalid(stringsNum){while(sNum.LastIndexOf("零零")!=-1||sNum.LastIndexOf("零元")!=-1||sNum.LastIndexOf("零萬")!=-1||sNum.LastIndexOf("零億")!=-1||sNum.LastIndexOf("零兆")!=-1||sNum.LastIndexOf("億萬")!=-1||sNum.LastIndexOf("兆萬億")!=-1||sNum.LastIndexOf("京億兆")!=-1){sNum=sNum.Replace("零零","零").Replace("零元","元").Replace("零萬","萬").Replace("零億","億");sNum=sNum.Replace("零兆","兆").Replace("億萬","億").Replace("兆萬億","兆").Replace("京億兆","京");}returnsNum+"整"=="元整"?"零元整":sNum+"整";}

解决方案四:
两位大哥真快啊,自己写的吧,我先看看等会结贴。以后还要多讨教。谢谢!
解决方案五:
大写换小写无论如何很难做到完全准确。所以建议再做个小写换大写来进行校验。
解决方案六:
临时写得,还没经过全面测试publicdoubleDecodeMoneyCn(stringAText){AText=AText.Replace("万万","亿");AText=AText.Replace("点","元");AText=AText.Replace("块","元");AText=AText.Replace("毛","角");doublevResult=0;doublevNumber=0;//当前数字doublevTemp=0;intvDecimal=0;//是否出现小数点foreach(charvCharinAText){inti="零一二三四五六七八九".IndexOf(vChar);if(i<0)i="零幺两三四五六七八九".IndexOf(vChar);if(i<0)i="零壹贰叁肆伍陆柒捌玖".IndexOf(vChar);if(i>0){vNumber=i;if(vDecimal>0){vResult+=vNumber*Math.Pow(10,-vDecimal);vDecimal++;vNumber=0;}}else{i="元十百千万亿".IndexOf(vChar);if(i<0)i="整拾佰仟万亿".IndexOf(vChar);if(i==5)i=8;if(i>0){if(i>=4){vTemp+=vNumber;if(vTemp==0)vTemp=1;vResult+=vTemp*Math.Pow(10,i);vTemp=0;}elsevTemp+=vNumber*Math.Pow(10,i);}else{i="元角分".IndexOf(vChar);if(i>0){vTemp+=vNumber;vResult+=vTemp*Math.Pow(10,-i);vTemp=0;}elseif(i==0){vTemp+=vNumber;vResult+=vTemp;vDecimal=1;vTemp=0;}}vNumber=0;}}returnvResult+vTemp+vNumber;}privatevoidbutton2_Click(objectsender,EventArgse){string[]vTestText={"十二点五六","一亿零一万零五","四万万","九十八亿七千六百五十四万三千二百一十","五元一角四分","壹佰元整","三千五百万","九块二毛"};foreach(stringvTextinvTestText){Console.WriteLine("DecodeMoneyCn("{0}")={1}",vText,DecodeMoneyCn(vText));}}

部分测试结果如下[code=BatchFile]DecodeMoneyCn("十二点五六")=2.56DecodeMoneyCn("一亿零一万零五")=100010005DecodeMoneyCn("四万万")=400000000DecodeMoneyCn("九十八亿七千六百五十四万三千二百一十")=9876543210DecodeMoneyCn("五元一角四分")=5.14DecodeMoneyCn("壹佰元整")=100DecodeMoneyCn("三千五百万")=35000000DecodeMoneyCn("九块二毛")=9.2[/code]

时间: 2024-07-29 02:19:34

如何将大写金额转换成小写?的相关文章

大写金额转换成小写

Q:如何将大写金额转换成小写? A:简单点,格式比较严格 private float getMoney(string strBig) ...{ string strExp=""; string[] arrBig = new string[] ...{ "整","","零","+0","壹","+1","贰","+2","

WPS怎么将正文中大写字母转换成小写

  WPS文字轻松将大写字母转换成小写 ①将文章全部转换成小写. 选中文字,单击激活标题后面的"开始"标签,单击字体工具区域中的更改大小写图标,弹出"更改大小写"对话框,选择"小写"完成第一步. ②英文每句话的第一个字母必须大写,所以我们在全选状态下执行"句首字母大写"操作. ③英文专有名词中实词的第一个字母必须大写,我们选中相应单词后执行"词首字母大写"操作. ④像TV.PE等缩略词及某些特殊的词字母需要

c语言-C语言,把大写字母转换成小写字母的函数,请问哪里错了?

问题描述 C语言,把大写字母转换成小写字母的函数,请问哪里错了? main.c #include int main(void) { char ch; for (; (ch = getchar()) != EOF;) { tolower(ch); putchar(ch); } } tolower.c void tolower(char ch) { if (ch >= 'A'&&ch <= 'Z') ch += 32; } 解决方案 你这种该法只是改变了形参的值,没有改变实参的值,

HDOJ/HDU 1161 Eddy&amp;#39;s mistakes(大写字母转换成小写字母)

Problem Description Eddy usually writes articles ,but he likes mixing the English letter uses, for example "computer science" is written frequently "coMpUtEr scIeNce" by him, this mistakes lets Eddy's English teacher be extremely disco

ASP字符串大写转换成小写 ASP小写转换成大写 ucase lcase_ASP基础

LCase:转成小写 UCase:转成大写 下面是ASP中的代码,可以直接演示效果的. 复制代码 代码如下: <% dim str,str1,str2 str="AbCdEf" str1=LCase(str) str2=UCase(str) Response.write("LCase转换小写"&str1 & ",UCase转换大写" & str2) %> 而.NET中将字符串转换为大写ToUpper(),将字符

ASP字符串大写转换成小写 ASP小写转换成大写 ucase lcase

LCase:转成小写 UCase:转成大写 下面是ASP中的代码,可以直接演示效果的. 复制代码 代码如下: <% dim str,str1,str2 str="AbCdEf" str1=LCase(str) str2=UCase(str) Response.write("LCase转换小写"&str1 & ",UCase转换大写" & str2) %> 而.NET中将字符串转换为大写ToUpper(),将字符

php将字符串全部转换成大写或者小写的方法

 这篇文章主要介绍了php将字符串全部转换成大写或者小写的方法,涉及php中strtolower与strtoupper等函数的使用技巧,需要的朋友可以参考下     本文实例讲述了php将字符串全部转换成大写或者小写的方法.分享给大家供大家参考.具体分析如下: php中可以通过strtolower和strtoupper两个函数将字符串中的每个英文字符全部转换成小写或者大写 ? 1 2 3 4 5 6 7 8 <?php $string = "Learn PHP string functio

php将字符串全部转换成大写或者小写的方法_php技巧

本文实例讲述了php将字符串全部转换成大写或者小写的方法.分享给大家供大家参考.具体分析如下: php中可以通过strtolower和strtoupper两个函数将字符串中的每个英文字符全部转换成小写或者大写 <?php $string = "Learn PHP string functions at jb51.net"; $lower = strtolower($string); $upper = strtoupper($string); print("$lower\

用shell脚本和c语言将大写字母转成小写的代码

最近在学shell编程,在网上看到tr '[:upper:]' '[:lower:]' 可以把字符串中大写字母转换成小写字母,我就在这个的基础上写了一个脚本来自己学习学习   复制代码 代码如下: #!/bin/bash #name: upper_to_lower.sh #the function is trun uper to lower #like ABCd to abcd haveuppernumber() {     #test if the string have upper numb