將人民幣的數(shù)字表示轉(zhuǎn)化成大寫表示(C#版)
實(shí)在沒有什么好講的,就是一個(gè)方法,大家拿去用吧
using System;
namespace Test.Com { /// <summary> /// 功能:字符串處理函數(shù)集 /// </summary> public class DealString { #region 私有成員 /// <summary> /// 輸入字符串 /// </summary> private string inputString=null; /// <summary> /// 輸出字符串 /// </summary> private string outString=null; /// <summary> /// 提示信息 /// </summary> private string noteMessage=null; #endregion
#region 公共屬性 /// <summary> /// 輸入字符串 /// </summary> public string InputString { get{return inputString;} set{inputString=value;} } /// <summary> /// 輸出字符串 /// </summary> public string OutString { get{return outString;} set{outString=value;} } /// <summary> /// 提示信息 /// </summary> public string NoteMessage { get{return noteMessage;} set{noteMessage=value;} } #endregion #region 構(gòu)造函數(shù) public DealString() { // // TODO: 在此處添加構(gòu)造函數(shù)邏輯 // } #endregion
#region 公共方法 public void ConvertToChineseNum() { string numList="零壹貳叁肆伍陸柒捌玖"; string rmbList = "分角元拾佰仟萬拾佰仟億拾佰仟萬"; double number=0; string tempOutString=null;
try { number=double.Parse(this.inputString); } catch { this.noteMessage="傳入?yún)?shù)非數(shù)字!"; return; } if(number>9999999999999.99) this.noteMessage="超出范圍的人民幣值";
//將小數(shù)轉(zhuǎn)化為整數(shù)字符串 string tempNumberString=Convert.ToInt64(number*100).ToString(); int tempNmberLength=tempNumberString.Length; int i=0; while(i<tempNmberLength) { int oneNumber=Int32.Parse(tempNumberString.Substring(i,1)); string oneNumberChar=numList.Substring(oneNumber,1); string oneNumberUnit=rmbList.Substring(tempNmberLength-i-1,1); if(oneNumberChar!="零") tempOutString+=oneNumberChar+oneNumberUnit; else { if(oneNumberUnit=="億"||oneNumberUnit=="萬"||oneNumberUnit=="元"||oneNumberUnit=="零") { while (tempOutString.EndsWith("零")) { tempOutString=tempOutString.Substring(0,tempOutString.Length-1); }
} if(oneNumberUnit=="億"||(oneNumberUnit=="萬"&&!tempOutString.EndsWith("億"))||oneNumberUnit=="元") { tempOutString+=oneNumberUnit; } else { bool tempEnd=tempOutString.EndsWith("億"); bool zeroEnd=tempOutString.EndsWith("零"); if(tempOutString.Length>1) { bool zeroStart=tempOutString.Substring(tempOutString.Length-2,2).StartsWith("零"); if(!zeroEnd&&(zeroStart||!tempEnd)) tempOutString+=oneNumberChar; } else { if(!zeroEnd&&!tempEnd) tempOutString+=oneNumberChar; } } } i+=1; }
while (tempOutString.EndsWith("零")) { tempOutString=tempOutString.Substring(0,tempOutString.Length-1); }
while(tempOutString.EndsWith("元")) { tempOutString=tempOutString+"整"; }
this.outString=tempOutString;
} #endregion } }
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!