Monday 9 January 2012

How to convert number into words in c# code.


 public string retWord(int number)
  {

      if (number == 0) return "Zero";
      if (number == -2147483648) return "Minus Two Hundred and Fourteen Crore Seventy Four Lakh Eighty Three Thousand Six Hundred and Forty Eight";
      int[] num = new int[4];
      int first = 0;
      int u, h, t;
      System.Text.StringBuilder sb = new System.Text.StringBuilder();

      if (number < 0)
      {
          sb.Append("Minus");
          number = -number;
      }
      string[] words0 = { "", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight", "Nine " };
      string[] words = { "Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen " };

      string[] words2 = { "Twenty", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty", "Ninety " };

      string[] words3 = { "Thousand ", "Lakh ", "Crore " };

      num[0] = number % 1000; // units

      num[1] = number / 1000;

      num[2] = number / 100000;

      num[1] = num[1] - 100 * num[2]; // thousands

      num[3] = number / 10000000; // crores

      num[2] = num[2] - 100 * num[3]; // lakhs
      for (int i = 3; i > 0; i--)
      {
          if (num[i] != 0)
          {
              first = i;
              break;
          }
      }
      for (int i = first; i >= 0; i--)
      {
          if (num[i] == 0) continue;

          u = num[i] % 10; // ones

          t = num[i] / 10;

          h = num[i] / 100; // hundreds

          t = t - 10 * h; // tens

          if (h > 0) sb.Append(words0[h] + "Hundred ");

          if (u > 0 || t > 0)
          {
              if (h > 0 || i == 0) sb.Append("and ");
              if (t == 0)
                  sb.Append(words0[u]);

              else if (t == 1)
                  sb.Append(words[u]);
              else
                  sb.Append(words2[t - 2] + words0[u]);
          }

          if (i != 0) sb.Append(words3[i - 1]);
      }
      return sb.ToString().TrimEnd();

  }  

2 comments:

  1. 1) can be used with Select statement
    2) Not returning output parameter but returns Table variables
    3) You can join UDF
    4) Cannot be used to change server configuration
    5) Cannot be used with XML FOR clause
    6) Cannot have transaction within function

    Stored Procedure
    -----------------
    1) have to use EXEC or EXECUTE
    2) return output parameter
    3) can create table but won’t return Table Variables
    4) you can not join SP
    5) can be used to change server configuration
    6) can be used with XML FOR Clause
    7) can have transaction within SP

    ReplyDelete

Contact Us:

Email:

Vinodkumar434@gmail.com,
vinodtechnosoft@gmail.com

Skype Name:

vinodtechnosoft