## In Focus

AuthorQuestion
How to Convert Numbers into Words
Posted By Suresh B on 11 Feb 2008

How to Convert the Amount in Number to Words?

• 0
• 0
Re: How to Convert Numbers into Words
Posted on 11 Feb 2008
I just did a google search (c# convert number to words) and found this: Code to Convert the Given Number into Words

Hope it works. Goodluck.

• 0
• 0
Re: How to Convert Numbers into Words
Posted By Lalit M on 06 Jan 2010
you can use  this code sample

`string retWord(decimal Num){    //This two dimensional array store the primary word convertion of number.    retWord = "";    object[,] ArrWordList = { { 0, "" }, { 1, "One" }, { 2, "Two" }, { 3, "Three" }, { 4, "Four" }, { 5, "Five" }, { 6, "Six" }, { 7, "Seven" }, { 8, "Eight" }, { 9, "Nine" },     { 10, "Ten" }, { 11, "Eleven" }, { 12, "Twelve" }, { 13, "Thirteen" }, { 14, "Fourteen" }, { 15, "Fifteen" }, { 16, "Sixteen" }, { 17, "Seventeen" }, { 18, "Eighteen" }, { 19, "Nineteen" },     { 20, "Twenty" }, { 30, "Thirty" }, { 40, "Forty" }, { 50, "Fifty" }, { 60, "Sixty" }, { 70, "Seventy" }, { 80, "Eighty" }, { 90, "Ninety" }, { 100, "Hundred" }, { 1000, "Thousand" },     { 100000, "Lakh" }, { 10000000, "Crore" } };    int i;    for (i = 0; i <= UBound(ArrWordList); i++) {        if (Num == ArrWordList(i, 0)) {            retWord = ArrWordList(i, 1);            break; // TODO: might not be correct. Was : Exit For        }    }    return retWord;}`

Thanks ....Lalit.

• 1
• 0
Re: How to Convert Numbers into Words
Posted on 06 Jan 2010

here's ur code

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{

}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = changeToWords(textBox1.Text,
false);
}

public String changeNumericToWords(double numb)
{
String num = numb.ToString();
return changeToWords(num, false);
}
public String changeCurrencyToWords(String numb)
{
return changeToWords(numb, true);
}
public String changeNumericToWords(String numb)
{
return changeToWords(numb, false);
}
public String changeCurrencyToWords(double numb)
{
return changeToWords(numb.ToString(), true);
}
private String changeToWords(String numb, bool isCurrency)
{
String val = "", wholeNo = numb, points = "", andStr = "", pointStr = "";
String endStr = (isCurrency) ? ("Only") : ("");
try
{
int decimalPlace = numb.IndexOf(".");
if (decimalPlace > 0)
{
wholeNo = numb.Substring(0, decimalPlace);
points = numb.Substring(decimalPlace + 1);
if (Convert.ToInt32(points) > 0)
{
andStr = (isCurrency) ? (
"and") : ("point");// just to separate whole numbers from points/cents
endStr = (isCurrency) ? (
"Cents " + endStr) : ("");
pointStr = translateCents(points);
}
}
val =
String.Format("{0} {1}{2} {3}", translateWholeNumber(wholeNo).Trim(), andStr, pointStr, endStr);
}
catch { ;}
return val;
}
private String translateWholeNumber(String number)
{
string word = "";
try
{
bool beginsZero = false;//tests for 0XX
bool isDone = false;//test if already translated
double dblAmt = (Convert.ToDouble(number));
//if ((dblAmt > 0) && number.StartsWith("0"))
if (dblAmt > 0)
{
//test for zero or digit zero in a nuemric
beginsZero = number.StartsWith(
"0");
int numDigits = number.Length;
int pos = 0;//store digit grouping
String place = "";//digit grouping name:hundres,thousand,etc...
switch (numDigits)
{
case 1://ones' range
word = ones(number);
isDone =
true;
break;
case 2://tens' range
word = tens(number);
isDone =
true;
break;
case 3://hundreds' range
pos = (numDigits % 3) + 1;
place =
" Hundred ";
break;
case 4://thousands' range
case 5:
case 6:
pos = (numDigits % 4) + 1;
place =
" Thousand ";
break;
case 7://millions' range
case 8:
case 9:
pos = (numDigits % 7) + 1;
place =
" Million ";
break;
case 10://Billions's range
pos = (numDigits % 10) + 1;
place =
" Billion ";
break;
//add extra case options for anything above Billion...
default:
isDone =
true;
break;
}
if (!isDone)
{
//if transalation is not done, continue...(Recursion comes in now!!)
word = translateWholeNumber(number.Substring(0, pos)) + place + translateWholeNumber(number.Substring(pos));
//check for trailing zeros
if (beginsZero) word = " and " + word.Trim();
}
//ignore digit grouping names
if (word.Trim().Equals(place.Trim())) word = "";
}
}
catch { ;}
return word.Trim();
}
private String tens(String digit)
{
int digt = Convert.ToInt32(digit);
String name = null;
switch (digt)
{
case 10:
name =
"Ten";
break;
case 11:
name =
"Eleven";
break;
case 12:
name =
"Twelve";
break;
case 13:
name =
"Thirteen";
break;
case 14:
name =
"Fourteen";
break;
case 15:
name =
"Fifteen";
break;
case 16:
name =
"Sixteen";
break;
case 17:
name =
"Seventeen";
break;
case 18:
name =
"Eighteen";
break;
case 19:
name =
"Nineteen";
break;
case 20:
name =
"Twenty";
break;
case 30:
name =
"Thirty";
break;
case 40:
name =
"Fourty";
break;
case 50:
name =
"Fifty";
break;
case 60:
name =
"Sixty";
break;
case 70:
name =
"Seventy";
break;
case 80:
name =
"Eighty";
break;
case 90:
name =
"Ninety";
break;
default:
if (digt > 0)
{
name = tens(digit.Substring(0, 1) +
"0") + " " + ones(digit.Substring(1));
}
break;
}
return name;
}
private String ones(String digit)
{
int digt = Convert.ToInt32(digit);
String name = "";
switch (digt)
{
case 1:
name =
"One";
break;
case 2:
name =
"Two";
break;
case 3:
name =
"Three";
break;
case 4:
name =
"Four";
break;
case 5:
name =
"Five";
break;
case 6:
name =
"Six";
break;
case 7:
name =
"Seven";
break;
case 8:
name =
"Eight";
break;
case 9:
name =
"Nine";
break;
}
return name;
}
private String translateCents(String cents)
{
String cts = "", digit = "", engOne = "";
for (int i = 0; i < cents.Length; i++)
{
digit = cents[i].ToString();
if (digit.Equals("0"))
{
engOne =
"Zero";
}
else
{
engOne = ones(digit);
}
cts +=
" " + engOne;
}
return cts;
}

}

***************************
pls mark Accepted if u find it helpful

Thanks Rekha
• 0
• 0
Re: How to Convert Numbers into Words
Posted on 14 Feb 2010
Thanks Rekha..u saved me a lot of work ..

debanjan
• 0
• 0
Re: How to Convert Numbers into Words
Posted on 19 Aug 2010
Thanks rekha,
everything is fine
but if i give 023, it showing texta as "and Hundred Twenty Three"
solve this also.hope u can do it easily

• 0
• 0
Re: How to Convert Numbers into Words
Posted on 29 Dec 2010

Here's some code I wrote to convert numbers to words:
http://www.blackbeltcoder.com/Articles/strings/converting-numbers-to-words

Jonathan Wood | Black Belt Coder
• 0
• 0
Re: How to Convert Numbers into Words
Posted on 24 May 2012
Hi Rekha,

Your program has errors its saying Hundred for Lachs

My Code:
digit2word dw = new digit2word();
double
num=488000;string result = dw.changeNumericToWords(num);
Console.WriteLine(string.Format("digit {0} is converted to ->> {1}",num,result));Console.Read();

Output:

digit 488000 is converted to ->> Four Hundred Eighty Eight Thousand

--
Yash

• 0
• 0
Re: How to Convert Numbers into Words
Posted By Vulpes on 24 May 2012
If you're wanting a result using the Indian numbering system (as opposed to the US/UK systems), check out my article on the topic: