public class ToChineseValue
...{
private enum chineseChar...{零,壹,貳,三,肆,伍,陸,柒,捌,玖};
private enum charValue...{個=1,十,百,千}
private enum c...{元=1,萬,億,兆};
private enum afterPoint...{角,分};
public ToChineseValue()
...{
//
&
nbsp;// TODO: 在此處添加構造函數邏輯
//
}
public string toChineseChar(decimal d)
...{
decimal flag=0;
if(d<0)
...{
flag=d;
d=-d;
}
string strChinese="";
string nextString="";
System.Globalization.NumberFormatInfo fmat=new System.Globalization.NumberFormatInfo();
fmat.CurrencyDecimalDigits=2;
fmat.CurrencySymbol="";
fmat.CurrencyGroupSizes =new int []...{4,4,4,4};
fmat.CurrencyGroupSeparator=",";
string strx=d.ToString("c",fmat);
string []afterArray=strx.ToString() .Split (''.'');
char[] prePoint=afterArray[0].ToCharArray ();
char [] nextChar=afterArray[1].ToCharArray ();
if(System.Convert .ToDecimal (afterArray[0].ToString ())==0)
...{ strChinese="";}
else
...{
string [] str=afterArray[0].ToString().Split ('','');
int Num=str.Length ;
//交錯數組用來放四個一組的數組
char[][]part=new char [Num][];
for(int i=0;i<str.Length ;i++)
...{
part[i]=str[i].ToCharArray ();
}
for(int i=0;i<Num;i++)
...{
for(int j=0;j<part[i].Length;j++)
...{
//用枚舉完成漢字的轉換
strChinese+=((chineseChar)int.Parse (part[i][j].ToString ())).ToString ();
//用枚舉完成單位: 個 十 百 千
strChinese+=((charValue)(part[i].Length-j)).ToString();
}
//以下為處理元 萬 億 兆
strChinese+=((c)(part.Length-i)).ToString();
}
}
//處理點號後面的小數部分
if(System.Convert.ToDecimal(afterArray[1].ToString ())==0&&System.Convert.ToDecimal(afterArray [0].ToString ())!=0)
...{
nextString="整";
}
else
...{
for(int i=0;i<2;i++)
...{
int t=int.Parse (nextChar[i].ToString ());
nextString+=((chineseChar)int.Parse (nextChar[i].ToString ())).ToString ();
nextString+=((afterPoint)(i)).ToString();
if(t==0)
...{
StringBuilder str=new StringBuilder(nextString);
nextString=str.Replace ("零零","零").ToString ();
nextString=str.Replace ("零角零分","零元").ToString ();
}
}
}
StringBuilder sb=new StringBuilder(strChinese);
for(int i=0;i<4;i++)
...{
strChinese=sb.Replace ("個","").ToString ();
strChinese=sb.Replace ("零元","元").ToString ();
strChinese=sb.Replace ("零萬","萬").ToString ();
strChinese=sb.Replace ("億萬","億").ToString ();
strChinese=sb.Replace ("零億","億").ToString ();
strChinese=sb.Replace ("零十","零").ToString ();
strChinese=sb.Replace ("零百","零").ToString ();
; strChinese=sb.Replace ("零千","零").ToString ();
strChinese=sb.Replace ("零零","零").ToString ();
strChinese=sb.Replace ("零角零分","整").ToString ();
}
if(flag>=0)
...{
return strChinese+nextString;
}
return "負"+strChinese+nextString;
}
}