Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I convert string to Indian Money format?

I am trying to convert string to India Money format like if input is "1234567" then output should come as "12,34,567"

I have written following code but its not giving the expected output.

 CultureInfo hindi = new CultureInfo("hi-IN");
 string text = string.Format(hindi, "{0:c}", fare);
 return text;

can anyone tell me how to do this?

like image 788
Balraj Singh Avatar asked Sep 19 '12 10:09

Balraj Singh


People also ask

How do I convert currency to string?

string value = (Convert. ToDecimal(ReturnValue)). ToString("c");

What is the money format?

United States (U.S.) currency is formatted with a decimal point (.) as a separator between the dollars and cents. Some countries use a comma (,) instead of a decimal to indicate that separation.


2 Answers

If fare is any of int, long, decimal, float or double then I get the expected output of:

₹ 12,34,567.00.

I suspect your fare is actually a string; strings are not formatted by string.Format: they are already a string: there is no value to format. So: parse it first (using whatever is appropriate, maybe an invariant decimal parse), then format the parsed value; for example:

// here we assume that `fare` is actually a `string`
string fare = "1234567";
decimal parsed = decimal.Parse(fare, CultureInfo.InvariantCulture);
CultureInfo hindi = new CultureInfo("hi-IN");
string text = string.Format(hindi, "{0:c}", parsed);

Edit re comments; to get just the formatted value without the currency symbol or decimal portion:

string text = string.Format(hindi, "{0:#,#}", value);
like image 93
Marc Gravell Avatar answered Oct 06 '22 07:10

Marc Gravell


Try this

int myvalue = 123456789;
Console.WriteLine(myvalue.ToString("#,#.##", CultureInfo.CreateSpecificCulture("hi-IN")));//output;- 12,34,56,789
like image 40
shiv mysuru Avatar answered Oct 06 '22 07:10

shiv mysuru