How do I convert string to Indian Money format?

16,962

Solution 1

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);

Solution 2

Try this

int myvalue = 123456789;
Console.WriteLine(myvalue.ToString("#,#.##", CultureInfo.CreateSpecificCulture("hi-IN")));//output;- 12,34,56,789
Share:
16,962

Related videos on Youtube

Balraj Singh
Author by

Balraj Singh

Energetic software engineer with 8+ years experience developing simple & anti-fragile software for high-volume businesses. Improved Mobile App's stability and responsiveness by incorporating patterns & practices. Wrote 7+ numbers of blogs on medium related to general pattern & practices of programming skills.

Updated on July 11, 2022

Comments

  • Balraj Singh
    Balraj Singh almost 2 years

    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?

    • Marc Gravell
      Marc Gravell over 11 years
      I get the output ₹ 12,34,567.00, which seems correct; what data type is fare ?
  • Balraj Singh
    Balraj Singh over 11 years
    Actually i am looking for an output in string format like 12,34,567 and not like ₹ 12,34,567.00. the above solution gives me the latter answer.
  • Marc Gravell
    Marc Gravell over 11 years
    @BalrajSingh then.... why did you specify c? Simply: 12,34,567 is not the currency format for hi-IN.
  • Marc Gravell
    Marc Gravell over 11 years
    @BalrajSingh I have added an example to show a way of getting that output