Introduction:
In my previous article I
have explained about how
to validate emailid using javascript. In this article I am going to explain
about code used to convert rupees(numbers) into words using C#.Net.
Explanation:
For explanation purpose I have a page. It has
a textbox to input the numbers. And when you click on the convert to words
button then it will convert the input numbers into words and shows it in the
below label.
Below is the C# code used to do this
functionality.
public static
string NumbersToWords(int
inputNumber)
{
int
inputNo = inputNumber;
if
(inputNo == 0)
return
"Zero";
int[]
numbers = new int[4];
int
first = 0;
int
u, h, t;
System.Text.StringBuilder sb = new
System.Text.StringBuilder();
if
(inputNo < 0)
{
sb.Append("Minus ");
inputNo = -inputNo;
}
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
" };
numbers[0] = inputNo % 1000;
// units
numbers[1] = inputNo / 1000;
numbers[2] = inputNo /
100000;
numbers[1] = numbers[1] -
100 * numbers[2]; // thousands
numbers[3] = inputNo /
10000000; // crores
numbers[2] = numbers[2] -
100 * numbers[3]; // lakhs
for
(int i = 3; i > 0; i--)
{
if
(numbers[i] != 0)
{
first = i;
break;
}
}
for
(int i = first; i >= 0; i--)
{
if
(numbers[i] == 0) continue;
u = numbers[i] % 10; // ones
t = numbers[i] / 10;
h = numbers[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();
}
Below is the aspx code.
<form id="form1" runat="server">
<div>
<table style="width: 50%;">
<tr>
<td>
Input Number
</td>
<td>
<asp:TextBox ID="txtNumber"
runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
</td>
<td>
<asp:Button ID="btnConvert"
Text="Convert To
Words" runat="server"
OnClick="btnConvert_Click"
/>
</td>
</tr>
<tr>
<td colspan="2">
<asp:Label ID="lblWords"
runat="server"></asp:Label>
</td>
</tr>
</table>
</div>
</form>
Do you like this
article? Help us to improve. Please post your comments below.
Download Source Code:
very very nice code
ReplyDeleteAwsme !!
ReplyDeleteVery Helpful
ReplyDeletethanks
Thanks a lot for all your efforts.
ReplyDeletesaved my lots of time....
This comment has been removed by the author.
ReplyDeleteNice code.However prints "and" at the beggining for numbers < 100.eg: if input number is 25 output is "and Twenty Five" instead of "Twenty Five"
ReplyDeletethanks..
ReplyDeleteThanks to .Net Pickles
ReplyDeleteIf you like our articles please subscribe to our newsletter. Thanks
ReplyDeleteNice Articles and very good content you posted, keep going to post new code, i'll come regullaryly
ReplyDeletehttp://interview-question-answer.weebly.com/cnet/c-interview-questions-and-answers
Good work awesome coding..... Only change to this part is needed : if (h > 0 && i == 0) sb.Append("and "); because above coding shows o/p as : "and two". Really helped me lot and saved my time.
ReplyDeleteVery Nice program. Saved lot of time.
ReplyDeleteTo get the proper message for numbers below 100, just replace last line
return sb.ToString().TrimEnd();
by
string sn = string.Empty;
string s = sb.ToString().TrimEnd();
if (s.IndexOf("and") == 0) sn = s.Remove(0, 4);
else sn = s;
return sn;
Anyways thanks a lot.
Great..working...thanks
ReplyDeleteHow to convert numbers to word like 12345 as one two three four five
ReplyDeleteplease help me i'm getting problem to convert like 12345 as one two three four five in c# or javascript
ReplyDeleteIf anybody have the solution then please send me at"chandansingh913@gmail.com"
ReplyDeleteThanks in Advance!!!!