2012-11-15 68 views
0

我完成了大部分工作,但我对如何添加“二十几岁”感到困惑,我拥有所有的“一”和“十几岁”,但它停在119,因为我没有“二十多岁”。在静态字符串中,ThreeDigit是我设置它来执行三位数字的地方。将3位数字转换为文本

{ 
class Program 
{ 
    static string[] digitWords = 
    { "zero", "one", "two", "three", "four", 
     "five", "six", "seven", "eight", "nine", 
     "ten", "eleven", "twelve", "thirteen", "fourteen", 
     "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" }; 

    static string[] tenWords = 
    { "", "", "twenty", "thirty", "forty", 
     "fifty", "sixty", "seventy", "eighty", "ninety" }; 

    static string[] hundredWords = { "", "One-hundred", "two-hundred", "three-hundred", "four-hundred", "five-hundred", "six-hundred", "seven-hundred", "eight-hundred", "nine-hundred"}; 

    static string TwoDigit(int num) 
    { 
     if (num < 0 || num > 1001) return ""; 
     if (num < 20) return digitWords[num]; 
     if (num % 10 == 0) 
      return tenWords[num/10]; 
     else 
      return tenWords[num/10] + "-" + digitWords[num % 10]; 
    } 

    static string ThreeDigit(int num) 
    { 
     if (num % 100 == 0) 
      return hundredWords[num/100]; 
     else 
      return hundredWords[num/100] + "-" + digitWords[num % 100]; 
    } 


    static void Main(string[] args) 
    { 
     for (int i = 0; i <= 19; i++) 
      Console.WriteLine("{0}: {1}", i, TwoDigit(i)); 
     for (int i = 20; i <= 99; i +=7) 
      Console.WriteLine("{0}: {1}", i, TwoDigit(i)); 
     for (int i = 100; i <= 1100; i ++) 
      Console.WriteLine("{0}: {1}", i, ThreeDigit(i)); 
    } 
} 

}

+1

可能重复的[数(2),以字(2)](HTTP:/ /stackoverflow.com/questions/13389624/numbers-2-to-words-two) –

回答

0

尝试:

else 
    return hundredWords[num/100] + " and " + TwoDigit(num); 
}