> //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); >> } >>