How to Convert Number into Word eg:100000 to 1Lac and so on using C#
protected void ddlcrore_SelectedIndex_Changed(object sender, EventArgs e)
{
if (ddlcrore.SelectedValue != "-1")
{
string crore = ToLong(ddlcrore.SelectedItem.Text.Trim() + " 10000000").ToString();
string lac = ToLong(ddlLac.SelectedItem.Text.Trim() + " 100000").ToString();
string thousand = ToLong(ddlthousand.SelectedItem.Text.Trim() + " 1000").ToString();
txtConvertion_Result.Text = (Convert.ToDecimal(crore) + Convert.ToDecimal(lac) + Convert.ToDecimal(thousand))
.ToString("N0", System.Globalization.CultureInfo.CreateSpecificCulture("hi-IN"));
}
}
protected void ddlLac_SelectedIndex_Changed(object sender, EventArgs e)
{
if (ddlLac.SelectedValue != "-1")
{
string crore = ToLong(ddlcrore.SelectedItem.Text.Trim() + " 10000000").ToString();
string lac = ToLong(ddlLac.SelectedItem.Text.Trim() + " 100000").ToString();
string thousand = ToLong(ddlthousand.SelectedItem.Text.Trim() + " 1000").ToString();
txtConvertion_Result.Text = (Convert.ToDecimal(crore) + Convert.ToDecimal(lac) + Convert.ToDecimal(thousand))
.ToString("N0", System.Globalization.CultureInfo.CreateSpecificCulture("hi-IN"));
}
}
protected void ddlthousand_SelectedIndex_changed(object sender, EventArgs e)
{
if (ddlthousand.SelectedValue != "-1")
{
string crore = ToLong(ddlcrore.SelectedItem.Text.Trim() + " 10000000").ToString();
string lac = ToLong(ddlLac.SelectedItem.Text.Trim() + " 100000").ToString();
string thousand = ToLong(ddlthousand.SelectedItem.Text.Trim() + " 1000").ToString();
txtConvertion_Result.Text = (Convert.ToDecimal(crore) + Convert.ToDecimal(lac) + Convert.ToDecimal(thousand))
.ToString("N0", System.Globalization.CultureInfo.CreateSpecificCulture("hi-IN"));
}
}
private static Dictionary<string, long> numberTable = new Dictionary<string, long> {
{"0",0},{"1",1},{"2",2},{"3",3},{"4",4},
{"5",5},{"6",6},{"7",7},{"8",8},{"9",9},
{"10",10},{"11",11},{"12",12},{"13",13},
{"14",14},{"15",15},{"16",16},
{"17",17},{"18",18},{"19",19},{"20",20},
{"21",21},{"22",22},{"23",23},{"24",24},
{"25",25},{"26",26},{"27",27},{"28",28},
{"29",29},{"30",30},{"31",31},{"32",32},
{"33",33},{"34",34},{"35",35},{"36",36},
{"37",37},{"38",38},{"39",39},{"40",40},
{"41",41},{"42",42},{"43",43},{"44",44},
{"45",45},{"46",46},{"47",47},{"48",48},
{"49",49},{"50",50},{"51",51},{"52",52},
{ "53",53},{"54",54},{"55",55},{"56",56},
{"57",57},{"58",58},{"59",59},{"60",60},
{"61",61},{"62",62},{"63",63},{"64",64},
{"65",65},{"66",66},{"67",67},{"68",68},
{"69",69},{"70",70},{"71",71},{"72",72},
{"73",73},{"74",74},{"75",75},{"76",76},
{"77",77},{"78",78},{"79",79},{"80",80},
{"81",81},{"82",82},{"83",83},{"84",84},
{"85",85},{"86",86},{"87",87},{"88",88},
{"89",89},{"90",90},{"91",91},{"92",92},
{"93",93},{"94",94},{"95",95},{"96",96},
{"97",97},{"98",98},{"99",99},{"100",100},
{ "101",101},{"102",102},{"103",103},{"104",104},
{"105",105},{"106",106},{"107",107},{"108",108},
{"109",109},{"110",110},{"111",111},{"112",112},
{"1000",1000},{"100000",100000},{"10000000",10000000}};
public static long ToLong(string numberString)
{
var numbers = Regex.Matches(numberString, @"\w+").Cast<Match>()
.Select(m => m.Value.ToLowerInvariant())
.Where(v => numberTable.ContainsKey(v))
.Select(v => numberTable[v]);
long acc = 0, total = 0L;
foreach (long n in numbers)
{
if (n >= 1000)
{
total += (acc * n);
acc = 0;
}
else if (n >= 100)
{
acc *= n;
}
else acc += n;
}
return (total + acc) * (numberString.StartsWith("minus", StringComparison.InvariantCultureIgnoreCase) ? -1 : 1);
}