> //Wrapper class for NumberToText(int n) to account for single zero parameter. > public static string ConvertToStringRepresentation(long number) > { > string result = null; > > if (number == 0) > { > result = "Zero"; > } > else > { > result = NumberToText(number); > } > > return result; > } > > //Found at http://www.dotnet2themax.com/blogs/fbalena/PermaLink,guid,cdceca73-08cd-4c15-aef7-0f9c8096e20a.aspx. > //Modifications from original source: > // Changed parameter type from int to long. > // Changed labels to be singulars instead of plurals (Billions to Billion, Millions to Million, etc.). > private static string NumberToText(long n) > { > if (n < 0) > return "Minus " + NumberToText(-n); > else if (n == 0) > return ""; > else if (n <= 19) > return new string[] {"One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", > "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", > "Seventeen", "Eighteen", "Nineteen"}[n - 1] + " "; > else if (n <= 99) > return new string[] {"Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", > "Eighty", "Ninety"}[n / 10 - 2] + " " + NumberToText(n % 10); > else if (n <= 199) > return "One Hundred " + NumberToText(n % 100); > else if (n <= 999) > return NumberToText(n / 100) + "Hundred " + NumberToText(n % 100); > else if (n <= 1999) > return "One Thousand " + NumberToText(n % 1000); > else if (n <= 999999) > return NumberToText(n / 1000) + "Thousand " + NumberToText(n % 1000); > else if (n <= 1999999) > return "One Million " + NumberToText(n % 1000000); > else if (n <= 999999999) > return NumberToText(n / 1000000) + "Million " + NumberToText(n % 1000000); > else if (n <= 1999999999) > return "One Billion " + NumberToText(n % 1000000000); > else > return NumberToText(n / 1000000000) + "Billion " + NumberToText(n % 1000000000); > } >