Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...

How to convert numeric value into words in c#????plz suggest
me the coding of this question???

Answer Posted / narendran

public class Convertor
{
#region Dec - Arrays
private string[] arrOnes = new string[] {
"Zero",
"One",
"Two",
"Three",
"Four",
"Five",
"Six",
"Seven",
"Eight",
"Nine"
};
private string[] arrMisc = new string[] {
"",
"Eleven",
"Twelve",
"Thirteen",
"Fourteen",
"Fifteen",
"Sixteen",
"Seventeen",
"Eighteen",
"Nineteen",
};
private string[] arrTens = new string[] {
"",
"Ten",
"Twenty",
"Thirty",
"Forty",
"Fifty",
"Sixty",
"Seventy",
"Eighty",
"Ninety",
};

#endregion

#region Constants
private const string HUNDRED_TEXT = " Hundred";
private const string THOUSAND_TEXT = " Thousand";
private const string LAKH_TEXT = " Lakh";
private const string AND_TEXT = " and ";
private const string POINT_TEXT = " point ";
private const string TOO_HIGH_TEXT = "Too high value";

private const int ONE = 1;
private const int TEN = 2;
private const int HUNDRED = 3;
private const int THOUSAND = 4;
private const int TENTHOUSAND = 5;
private const int LAKH = 6;
private const int TENLAKH = 7;

private const int MAX_ALLOWED_LENGTH = TENLAKH;

public const int ERR_TOOLENGTH = -1;
public const int ERR_INPUT = -2;
public const int RET_SUCCESS = 0;
#endregion

public int ConvertNumberToText(String sNumber, out
string sResult)
{
sResult = "";
string[] str = sNumber.Split(new char[] { '.' });
string sStrAfterDecimal = str.Length > 1 ?
str[1] : "";
string sStrBeforeDecimal = str.Length >= 1 ?
str[0] : "";

if (sStrBeforeDecimal.Length > MAX_ALLOWED_LENGTH)
{
sResult = TOO_HIGH_TEXT;
return ERR_TOOLENGTH;
}

if (GetNuumberText(sStrBeforeDecimal, false, ref
sResult) == RET_SUCCESS)
{
if (sStrAfterDecimal != "")
{
sResult += POINT_TEXT;
if (GetNuumberText(sStrAfterDecimal,
true, ref sResult) != RET_SUCCESS)
{
sResult = "Error while computing..";
return ERR_INPUT;
}
}
return RET_SUCCESS;
}
else
{
sResult = "Error while computing..";
return ERR_INPUT;
}
}

private int GetNuumberText(string str, bool
isAfterDecimal, ref string retStr)
{
bool addAndString = false;
try
{
if (isAfterDecimal && str.Length >= 1)
{
for (int i = 0; i < str.Length; i++)
retStr +=
arrOnes[int.Parse(str[i].ToString())] + " ";
retStr = retStr.Remove(retStr.Length - 1);
}
else
{
while (str.Length > 0)
{
switch (str.Length)
{
case ONE:
retStr +=
arrOnes[int.Parse(str[0].ToString())];
str = "";
break;
case TEN:
{
string temp =
GetTwoDigitString(str);
if (temp != "")
retStr +=
addAndString ? AND_TEXT + temp : temp;
str = "";
}
break;
case HUNDRED:
if (str[0] != '0')
retStr +=
string.Format("{0}{1}",
arrOnes[int.Parse(str[0].ToString())], HUNDRED_TEXT);

if (str.Substring(1) != "00")
addAndString = true;
str = str.Remove(0, 1);
break;
case THOUSAND:
retStr +=
string.Format("{0}{1} ",
arrOnes[int.Parse(str[0].ToString())], THOUSAND_TEXT);
str = str.Remove(0, 1);
break;
case TENTHOUSAND:
{
string temp =
GetTwoDigitString(str.Substring(0, 2));
if (temp != "")
retStr +=
string.Format("{0}{1} ", temp, THOUSAND_TEXT);
str = str.Remove(0, 2);
}
break;
case LAKH:
retStr +=
string.Format("{0}{1} ",
arrOnes[int.Parse(str[0].ToString())], LAKH_TEXT);
str = str.Remove(0, 1);
break;
case TENLAKH:
{
string temp =
GetTwoDigitString(str.Substring(0, 2));
if (temp != "")
retStr +=
string.Format("{0}{1} ", temp, LAKH_TEXT);
str = str.Remove(0, 2);
}
break;
default:
break;
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return ERR_INPUT;
}
return RET_SUCCESS;
}

private string GetTwoDigitString(string str)
{
if (str == "00") return "";
string retString = "";
if (str[1] == '0')
retString +=
arrTens[int.Parse(str[0].ToString())];
else if (str[0] == '1')
retString +=
arrMisc[int.Parse(str[1].ToString())];
else
{
retString +=
arrTens[int.Parse(str[0].ToString())];
retString +=
arrOnes[int.Parse(str[1].ToString())];
}
return retString;
}
}

Is This Answer Correct ?    10 Yes 1 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

Write a program to find factorial of a number using functions

1659


without selecting individually each field in Action Class from jsp,what is the best process to select as many as field at a time automatically from jsp page by using value object class.

1837


we create a pf with 3 fields.2 is defined as keyfields.we lock it with alcobj command.how we find out whether the file is locked or not?is it dspfd??/

1993


Hi All, Can any one please send me the difference between informatica 7i and 8i versions, Thanks in advance. vinod

1954


what is the software to run the GSM gate opener program

2175


Diff between IF and where ?

2014


Diffrence between 2.0,3.0,3.5,4.0. versions of .net?

3133


Given an array of size n, containing every element from 1 to n+1, except one. Find the missing element.

1046


What is BASIS

2139


Please forward important interview and basic questions in VB6 on my email id: usneha_16@yahoo.co.in

2002


what are the activities you enjoy most and How do you see these Developing in the Future with Reference to in your work life and in your personal life

1433


what is the use of occurs 10 or (any number) in the internal table declaration with header line.

1887


what is meant by life cycle of a business

2232


What are the tasks performed by a Team Lead

2808


can we extend a class having only one parameterised constructor.Suggest the process to do it.

2476