有些方法名字我可能记得不对了,你看需要稍微改改就可以了。
这个调用是静态的,不需要new这个类。
使用的时候直接用:
CastToChineseNumber.DoCast("xxx-400");
这样的形式就可以了public class CastToChineseNumber {
// 实施转换的主方法,静态函数。
public static string DoCast(string input) {
   if (String.IsNullOrEmpty(input)) return ""; // 如果输入为空则返回空
   string src = input; // 原始字符串的副本
   string ret = ""; // 准备返回的结果字符串
   for (int i = 0; i < src.Length; i++) {
      switch src.Get(i) {  // 获取当前位置的字符,可能C#里面不叫Get吧,你自己再看看相关方法,下面一样需要替换
         case "-": ret += src.Get(i) // 去掉"-"
         break;
         case "0": ret += "零";
         break;
         case "1": ret += "壹";
         break;
         case "2": ret += "贰";
         break;
         // ......
         // 0-9 依次写成上面那样的汉字,我就不逐个给你写了
         defalut: ret += src.Get(i); // 其他文字逐个复制过来
         break;
      }
   }
return ret;
}

解决方案 »

  1.   

    其實是個很簡單的程序
    就是需要LZ一個Switch結構
    在加上判斷數字的位數.
    這樣簡單的東西感覺LZ自己應該能寫出來吧..
      

  2.   

    private static string giveNum(int n,string name)
            {
                if (n == 0) return "零";
                if (n > 10000) throw new Exception("");
                string[] chara = { "", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "零", "", "拾", "佰", "仟"};
                
                string tempStr="";
                List<int> charNum = new List<int>();
                
                string result="";
                int i = 0;
                do
                {                charNum.Add(n % 10);
                    n = (int)n / 10;
                    if (charNum[i] == 0)
                    {
                        if (!(i > 0 && charNum[i - 1] == 0)) tempStr = chara[10];
                    }
                    int temp2 = ((int)(charNum[i] - 10) / 10) + 1;
                    result = tempStr + chara[charNum[i]] + chara[11 + i * temp2] + result;
                    i++;
                    tempStr = "";
                    if (n < 1) break;
                } while (true);
                if (result.EndsWith("零")) return result.Remove(result.Length - 1) + name + "零";
                return result + name;        }
      

  3.   


    要是这么写,等着银行退票吧,432225=肆拾叁万贰仟贰佰贰拾伍元整现在:432220.50=肆拾叁万贰仟贰佰贰拾元伍角整过去:432220.50=肆拾叁万贰仟贰佰贰拾元零伍角整
    98年时,我给别人写过一个大小写转换的函数(MFC的),当时给了我3000元,并不是他们不会写代码,而且让他们用笔都写不出来