Search code examples
c#.netasp.netstring-formattingcurrency

Show Currency Symbol after values


I am using CultureInfo methods to successfully format all different currencies into their correct format.

But on some exceptions, such as EUR and SEK currencies I need to be able to add them after the value. At the moment my CultureInfo is formatting them in the following way: "SEK 1.00,00" when it needs to be "1.00,00 SEK".

Any help is appreciated.


Solution

  • All you need is to change the NumberFormatInfo.CurrencyPositivePattern and NumberFormatInfo.CurrencyNegativePattern properties for the culture.

    Just clone the original culture:

    CultureInfo swedish = new CultureInfo("sv-SE");
    swedish = (CultureInfo)swedish.Clone();
    swedish.NumberFormat.CurrencyPositivePattern = 3;
    swedish.NumberFormat.CurrencyNegativePattern = 3;
    

    and then

    var value = 123.99M;
    var result = value.ToString("C", swedish);
    

    should give you desired result. This should get you:

    123,99 kr