How do I convert string to Indian Money format?

前端 未结 4 835
感动是毒
感动是毒 2020-12-01 22:13

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 g

相关标签:
4条回答
  • 2020-12-01 22:24

    String.Format("0:C0") for no decimal places.

    As per my comment above you can achieve what you desire by cloning a numberformatinfo and set the currency symbol property to empty string

    Example can be found here - look down the bottom of the page

    EDIT: Here is the above linked post formatted for your question:

    var cultureInfo = new CultureInfo("hi-IN")
    var numberFormatInfo = (NumberFormatInfo)cultureInfo.NumberFormat.Clone();
    numberFormatInfo.CurrencySymbol = "";
    
    var price = 1234567;
    var formattedPrice = price.ToString("0:C0", numberFormatInfo); // Output: "12,34,567"
    
    0 讨论(0)
  • 2020-12-01 22:29

    If you want to show in Razor view file, then use,

    @String.Format(new System.Globalization.CultureInfo("hi-IN"), "{0:c}", decimal.Parse("12345678", System.Globalization.CultureInfo.InvariantCulture))
    
    // Output: ₹ 1,23,45,678.00
    
    0 讨论(0)
  • 2020-12-01 22:34

    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);
    
    0 讨论(0)
  • 2020-12-01 22:35

    Try this

    int myvalue = 123456789;
    Console.WriteLine(myvalue.ToString("#,#.##", CultureInfo.CreateSpecificCulture("hi-IN")));//output;- 12,34,56,789
    
    0 讨论(0)
提交回复
热议问题