不知道你們有沒有遇到須要將數字轉成中文大寫的須要,以下圖spa
這是轉換的代碼,有須要的的Ctr+C吧,不謝。code
public class PublicConvert { private static String[] Ls_ShZ = { "零", "壹", "貳", "叄", "肆", "伍", "陸", "柒", "捌", "玖", "拾" }; private static String[] Ls_DW_Zh = { "元", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "億", "拾", "佰", "仟", "萬" }; private static String[] Num_DW = { "", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "億", "拾", "佰", "仟", "萬" }; private static String[] Ls_DW_X = { "角", "分" }; /// <summary> /// 金額小寫轉中文大寫。 /// 整數支持到萬億;小數部分支持到分(超過兩位將進行Banker舍入法處理) /// </summary> /// <param name="Num">須要轉換的雙精度浮點數</param> /// <returns>轉換後的字符串</returns> public static String NumGetStr(Double Num) { Boolean iXSh_bool = false;//是否含有小數,默認沒有(0則視爲沒有) Boolean iZhSh_bool = true;//是否含有整數,默認有(0則視爲沒有) string NumStr;//整個數字字符串 string NumStr_Zh;//整數部分 string NumSr_X = "";//小數部分 string NumStr_DQ;//當前的數字字符 string NumStr_R = "";//返回的字符串 Num = Math.Round(Num, 2);//四捨五入取兩位 //各類非正常狀況處理 if (Num < 0) return "不轉換欠條"; if (Num > 9999999999999.99) return "很難想象誰會有這麼多錢!"; if (Num == 0) return Ls_ShZ[0]; //判斷是否有整數 if (Num < 1.00) iZhSh_bool = false; NumStr = Num.ToString(); NumStr_Zh = NumStr;//默認只有整數部分 if (NumStr_Zh.Contains(".")) {//分開整數與小數處理 NumStr_Zh = NumStr.Substring(0, NumStr.IndexOf(".")); NumSr_X = NumStr.Substring((NumStr.IndexOf(".") + 1), (NumStr.Length - NumStr.IndexOf(".") - 1)); iXSh_bool = true; } if (NumSr_X == "" || int.Parse(NumSr_X) <= 0) {//判斷是否含有小數部分 iXSh_bool = false; } if (iZhSh_bool) {//整數部分處理 NumStr_Zh = Reversion_Str(NumStr_Zh);//反轉字符串 for (int a = 0; a < NumStr_Zh.Length; a++) {//整數部分轉換 NumStr_DQ = NumStr_Zh.Substring(a, 1); if (int.Parse(NumStr_DQ) != 0) NumStr_R = Ls_ShZ[int.Parse(NumStr_DQ)] + Ls_DW_Zh[a] + NumStr_R; else if (a == 0 || a == 4 || a == 8) { if (NumStr_Zh.Length > 8 && a == 4) continue; NumStr_R = Ls_DW_Zh[a] + NumStr_R; } else if (int.Parse(NumStr_Zh.Substring(a - 1, 1)) != 0) NumStr_R = Ls_ShZ[int.Parse(NumStr_DQ)] + NumStr_R; } if (!iXSh_bool) return NumStr_R + "整"; //NumStr_R += "零"; } for (int b = 0; b < NumSr_X.Length; b++) {//小數部分轉換 NumStr_DQ = NumSr_X.Substring(b, 1); if (int.Parse(NumStr_DQ) != 0) NumStr_R += Ls_ShZ[int.Parse(NumStr_DQ)] + Ls_DW_X[b]; else if (b != 1 && iZhSh_bool) NumStr_R += Ls_ShZ[int.Parse(NumStr_DQ)]; } return NumStr_R; } public static string Reversion_Str(string input) { char[] array = input.ToCharArray(); IEnumerable<char> cs = array.Reverse<char>(); char[] array1 = cs.ToArray<char>(); string result = new string(array1); } }