hi,
can any one tell me how to i convert amount(in digitts) to word.
thanks in advance

hi,
can any one tell me how to i convert amount(in digitts) to word.
thanks in advance

You can try the following code:

public  string NumberToText(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[] words1 = {"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(words1[u]); 
else 
sb.Append(words2[t-2] + words0[u]); 
} 
if (i != 0) sb.Append(words3[i-1]); 
} 
return sb.ToString().TrimEnd(); 
}

If it helps,then mark this thread as solved

try this code

public  string NumberToText(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[] words1 = {"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(words1[u]); 
else 
sb.Append(words2[t-2] + words0[u]); 
} 
if (i != 0) sb.Append(words3[i-1]); 
} 
return sb.ToString().TrimEnd(); 
}
Comments
I'm glad to see you have mastered copy/paste! Time to master C# now!

bk_bhupendra ,I think you must make your efforts .Copying others code and pasting is wrong..............

hi,
can any one tell me how to i convert amount(in digitts) to word.
thanks in advance

using the code which vinnijain is given you, you can also try modifying the same for millions and billions also.............:)

You could store all the numeric semantics in a dictionary and then recursively call a translator method (as needed) that whittles it down from most significant to least signicant digits... For example:

Dictionary<uint, string> lookupWord = new Dictionary<uint, string>();

        public void Init()
        {
            lookupWord.Add(0, "siro");
            lookupWord.Add(1, "uno");
            lookupWord.Add(2, "dos");
            lookupWord.Add(3, "tres");
            lookupWord.Add(4, "kwatro");
   ...

            lookupWord.Add(800, "otsosyentos");
            lookupWord.Add(900, "nobesyentos");
            lookupWord.Add(1000, "un mil");
            lookupWord.Add(1000000, "un milyon");
            lookupWord.Add(1000000000, "un bilyon");
        }

        private string ConvertNumToText(uint n)
        {
            if (
                  (n < 20) ||
                  (n < 100 && (n % 10 == 0)) ||
                  (n < 1000 && n % 100 == 0) ||
                  (n == 1000) ||
                  (n == 1000000) ||
                  (n == 1000000000)
               )
            {
                return lookupWord[n];
            }
            else if (n < 100)
            {
                uint tens = n / 10;
                uint ones = n % 10;

                if (tens != 2)
                    return lookupWord[10 * tens] + "-i-" + lookupWord[ones];
                else
                    return lookupWord[10 * tens] + "-" + lookupWord[ones];
            }
    ...

            else if (n < 2000000000)
                return "un bilyon " + ConvertNumToText(n - 1000000000);
            else
            {
                uint billions = n / 1000000000;

                if (n % 1000000000 != 0)
                    return ConvertNumToText(billions) + " bilyon " + ConvertNumToText(n - 1000000000 * billions);
                else
                    return ConvertNumToText(billions) + " bilyon";
            }
        }

The above sample demonstrates working with the Cebuano language, but you can easily see the logic in making the proper interpretation to form a grammatical representation of a number.

hi,
can any one tell me how to i convert amount(in digitts) to word.
thanks in advance

Well Kool.net.......
Kindly mark this thread as solved if your problem is solved now..........:)

hey,
how to i store value of sb in text box return from the function

bk_bhupendra , the code is fine but for single digit or two digits it is showing the word "and" before the converted text. Please try to work on this.

Ramesh Kumar

This question has already been answered. Start a new discussion instead.