Convert Rupees (Numbers) to Words (String) using C#.NET

  1. public string ConvertNumbertoWords(long number)   
  2. {  
  3.     if (number == 0) return "ZERO";  
  4.     if (number < 0) return "minus " + ConvertNumbertoWords(Math.Abs(number));  
  5.     string words = "";  
  6.     if ((number / 1000000) > 0)   
  7.     {  
  8.         words += ConvertNumbertoWords(number / 100000) + " LAKES ";  
  9.         number %= 1000000;  
  10.     }  
  11.     if ((number / 1000) > 0)   
  12.     {  
  13.         words += ConvertNumbertoWords(number / 1000) + " THOUSAND ";  
  14.         number %= 1000;  
  15.     }  
  16.     if ((number / 100) > 0)   
  17.     {  
  18.         words += ConvertNumbertoWords(number / 100) + " HUNDRED ";  
  19.         number %= 100;  
  20.     }  
  21.     //if ((number / 10) > 0)  
  22.     //{  
  23.     // words += ConvertNumbertoWords(number / 10) + " RUPEES ";  
  24.     // number %= 10;  
  25.     //}  
  26.     if (number > 0)   
  27.     {  
  28.         if (words != "") words += "AND ";  
  29.         var unitsMap = new[]   
  30.         {  
  31.             "ZERO""ONE""TWO""THREE""FOUR""FIVE""SIX""SEVEN""EIGHT""NINE""TEN""ELEVEN""TWELVE""THIRTEEN""FOURTEEN""FIFTEEN""SIXTEEN""SEVENTEEN""EIGHTEEN""NINETEEN"  
  32.         };  
  33.         var tensMap = new[]   
  34.         {  
  35.             "ZERO""TEN""TWENTY""THIRTY""FORTY""FIFTY""SIXTY""SEVENTY""EIGHTY""NINETY"  
  36.         };  
  37.         if (number < 20) words += unitsMap[number];  
  38.         else   
  39.         {  
  40.             words += tensMap[number / 10];  
  41.             if ((number % 10) > 0) words += " " + unitsMap[number % 10];  
  42.         }  
  43.     }  
  44.     return words;  
  45. }