2015-06-16 23 views

回答

0

用户此方法从数字获得字符串,它是工作没有分数(不会返回3.5 =>三个半)

public static string NumberToWords(int number) 

{ 
    if (number == 0) 
     return "zero"; 

    if (number < 0) 
     return "minus " + NumberToWords(Math.Abs(number)); 

    string words = ""; 

    if ((number/1000000) > 0) 
    { 
     words += NumberToWords(number/1000000) + " million "; 
     number %= 1000000; 
    } 

    if ((number/1000) > 0) 
    { 
     words += NumberToWords(number/1000) + " thousand "; 
     number %= 1000; 
    } 

    if ((number/100) > 0) 
    { 
     words += NumberToWords(number/100) + " hundred "; 
     number %= 100; 
    } 

    if (number > 0) 
    { 
     if (words != "") 
      words += "and "; 

     var unitsMap = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" }; 
     var tensMap = new[] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" }; 

     if (number < 20) 
      words += unitsMap[number]; 
     else 
     { 
      words += tensMap[number/10]; 
      if ((number % 10) > 0) 
       words += "-" + unitsMap[number % 10]; 
     } 
    } 

    return words; 
} 
+0

非常感谢您的帮助,我很抱歉,我是这个论坛的新成员:) –

相关问题