以下是我自己写的一个 数字转换成中文的代码 小弟初写博客见笑了 class GetChineseNum ... { private char[] qBSG = new char[4]; private string[] numStrArrary; private string[] numStrArrary1 = new string[] ...{ "○", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "百", "千", "万", "亿" }; private string[] numStrArrary2 = new string[] ...{ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾", "佰", "仟", "万", "亿" }; private char[] numCharArray; private static int charNum; private static int charYuShu; private static int charGeShu; private string dotStr = "点"; private string xsStr = ""; public string DotStr ...{ set ...{ dotStr = value; } } /**//// <summary> /// 类构造器 /// numberType “类型1 ○一二”/“类型2 零壹贰” /// </summary> /// <param name="numberType"></param> public GetChineseNum(string numberType) ...{ if (numberType == "1") ...{ numStrArrary = numStrArrary1; } else if (numberType == "2") ...{ numStrArrary = numStrArrary2; } } /**//// <summary> /// 类构造器 ///number “数字 012”| numberType “类型1 ○一二”/“类型2 零壹贰” /// </summary> /// <param name="number"></param> /// <param name="numberType"></param> public GetChineseNum(string number, string numberType) ...{ string intNum = ""; try ...{ decimal.Parse(number); } catch ...{ throw new Exception("输入数字"); } if (numberType == "1") ...{ numStrArrary = numStrArrary1; } else if (numberType == "2") ...{ numStrArrary = numStrArrary2; } if (number.Split('.').Length == 2) ...{ intNum = number.Split('.')[0]; xsStr = number.Split('.')[1]; } else ...{ intNum = number; } charNum = intNum.ToCharArray().Length; numCharArray = intNum.ToCharArray(); for (int i = 0; i < charNum; i++) ...{ if (charNum > charNum - i - 1) numCharArray[i] = intNum.ToCharArray()[charNum - i - 1]; } if (charNum <= 4) ...{ charYuShu = charNum; charGeShu = 0; } else ...{ charYuShu = charNum % 4; charGeShu = charNum / 4; } } 获取单个中文数字#region 获取单个中文数字 /**//// <summary> /// 获取单个数字 /// </summary> /// <param name="numStr"></param> /// <returns></returns> public string GetSingleChinNum(string numStr) ...{ string newStr = ""; switch (numStr) ...{ case "0": newStr = numStrArrary[0]; break; case "1": newStr = numStrArrary[1]; break; case "2": newStr = numStrArrary[2]; break; case "3": newStr = numStrArrary[3]; break; case "4": newStr = numStrArrary[4]; break; case "5": newStr = numStrArrary[5]; break; case "6": newStr = numStrArrary[6]; break; case "7": newStr = numStrArrary[7]; break; case "8": newStr = numStrArrary[8]; break; case "9": newStr = numStrArrary[9]; break; default: break; } return newStr; } #endregion 获取中文数字串#region 获取中文数字串 /**//// <summary> /// 获取数字串 “如:○一二” /// </summary> /// <param name="numStr"></param> /// <returns></returns> public string GetNumOnly(string numStr) ...{ string newNumber = numStr; newNumber = newNumber.Replace("0", numStrArrary[0]).Replace("1", numStrArrary[1]).Replace("2", numStrArrary[2]).Replace("3", numStrArrary[3]); newNumber = newNumber.Replace("4", numStrArrary[4]).Replace("5", numStrArrary[5]).Replace("6", numStrArrary[6]); newNumber = newNumber.Replace("7", numStrArrary[7]).Replace("8", numStrArrary[8]).Replace("9", numStrArrary[9]); return newNumber; } #endregion 获取单个中文数字#region 获取单个中文数字 /**//// <summary> /// 获取单个数字 /// </summary> /// <param name="numChar"></param> /// <returns></returns> public string GetSingleChinNum(char numChar) ...{ string newStr = ""; switch (numChar) ...{ case '0': newStr = numStrArrary[0]; break; case '1': newStr = numStrArrary[1]; break; case '2': newStr = numStrArrary[2]; break; case '3': newStr = numStrArrary[3]; break; case '4': newStr = numStrArrary[4]; break; case '5': newStr = numStrArrary[5]; break; case '6': newStr = numStrArrary[6]; break; case '7': newStr = numStrArrary[7]; break; case '8': newStr = numStrArrary[8]; break; case '9': newStr = numStrArrary[9]; break; default: break; } return newStr; } #endregion 获取 个、十、百、千#region 获取 个、十、百、千 /**//// <summary> /// 按4位分割后去 每个组中的 个、十、百、千 数字串 /// </summary> /// <returns></returns> private string GetQBSG() ...{ string newQBSG = ""; if (qBSG[0].ToString() != null) ...{ if (GetSingleChinNum(qBSG[3]) != "") ...{ newQBSG += GetSingleChinNum(qBSG[3]) + numStrArrary[12]; } } if (qBSG[0].ToString() != null) ...{ if (GetSingleChinNum(qBSG[2]) != "") ...{ newQBSG += GetSingleChinNum(qBSG[2]) + numStrArrary[11]; } } if (qBSG[0].ToString() != null) ...{ if (GetSingleChinNum(qBSG[1]) != "") ...{ newQBSG += GetSingleChinNum(qBSG[1]) + numStrArrary[10]; } } if (qBSG[0].ToString() != null) ...{ newQBSG += GetSingleChinNum(qBSG[0]); } return newQBSG; } #endregion 获取中文数字#region 获取中文数字 /**//// <summary> /// 获取中文数字 “如 二百三十一” /// </summary> /// <returns></returns> public string GetChinNum() ...{ string rtnStr = ""; //获取 个、十、百、千 整体 以外 for (int i = 0; i < charYuShu; i++) ...{ if (charNum > charGeShu * 4 + i) qBSG[i] = numCharArray[charGeShu * 4 + i]; } rtnStr += GetQBSG(); if (charGeShu == 1) ...{ rtnStr += numStrArrary[13]; } if (charGeShu == 2 && charYuShu != 0) ...{ rtnStr += numStrArrary[14]; } if (charGeShu == 3 && charYuShu != 0) ...{ rtnStr += numStrArrary[13] + numStrArrary[14]; } //获取 个、十、百、千 整体 for (int i = charGeShu; i > 0; i--) ...{ if (charNum > i * 4 - 4) qBSG[0] = numCharArray[i * 4 - 4]; if (charNum > i * 4 - 3) qBSG[1] = numCharArray[i * 4 - 3]; if (charNum > i * 4 - 2) qBSG[2] = numCharArray[i * 4 - 2]; if (charNum > i * 4 - 1) qBSG[3] = numCharArray[i * 4 - 1]; if (i == 1) ...{ rtnStr += GetQBSG(); } if (i == 2) ...{ rtnStr += GetQBSG() + numStrArrary[13]; } if (i == 3) ...{ rtnStr += GetQBSG() + numStrArrary[14]; } if (i == 4) ...{ rtnStr += GetQBSG() + numStrArrary[13] + numStrArrary[14]; } } // 处理 ○十○百○个 等 rtnStr = rtnStr.Replace(numStrArrary[0] + numStrArrary[12] + numStrArrary[0] + numStrArrary[11] + numStrArrary[0] + numStrArrary[10] + numStrArrary[0], ""); rtnStr = rtnStr.Replace(numStrArrary[0] + numStrArrary[11] + numStrArrary[0] + numStrArrary[10] + numStrArrary[0], ""); rtnStr = rtnStr.Replace(numStrArrary[0] + numStrArrary[10] + numStrArrary[0], ""); rtnStr = rtnStr.Replace(numStrArrary[10] + numStrArrary[0], numStrArrary[10]); // 处理 ○十、○百 等 rtnStr = rtnStr.Replace(numStrArrary[0] + numStrArrary[10], numStrArrary[0]).Replace(numStrArrary[0] + numStrArrary[11], numStrArrary[0]).Replace(numStrArrary[0] + numStrArrary[12], numStrArrary[0]); rtnStr = rtnStr.Replace(numStrArrary[0] + numStrArrary[13], numStrArrary[13]).Replace(numStrArrary[0] + numStrArrary[14], numStrArrary[14]); //替换 多个 0 在一起 rtnStr = rtnStr.Replace(numStrArrary[0] + numStrArrary[0], numStrArrary[0]).Replace(numStrArrary[0] + numStrArrary[0] + numStrArrary[0], numStrArrary[0]); // 处理 ○一十万 等 rtnStr = rtnStr.Replace(numStrArrary[0] + numStrArrary[1] + numStrArrary[10] + numStrArrary[13], numStrArrary[0] + numStrArrary[10] + numStrArrary[13]); rtnStr = rtnStr.Replace(numStrArrary[0] + numStrArrary[1] + numStrArrary[10] + numStrArrary[14], numStrArrary[0] + numStrArrary[10] + numStrArrary[14]); return rtnStr + dotStr + GetNumOnly( xsStr); } #endregion }