Показывать символ валюты после значений - PullRequest
5 голосов
/ 11 марта 2011

Я использую методы CultureInfo для успешного форматирования всех различных валют в их правильный формат.

Но в некоторых исключениях, таких как валюты EUR и SEK, я должен иметь возможность добавлять их после значения. На данный момент моя CultureInfo форматирует их следующим образом: «SEK 1,00,00», когда оно должно быть «1,00,00 SEK».

Любая помощь приветствуется.

Ответы [ 2 ]

8 голосов
/ 11 марта 2011

Все, что вам нужно, это изменить свойства NumberFormatInfo.CurrencyPositivePattern и NumberFormatInfo.CurrencyNegativePattern для культуры.

Просто клонируйте оригинальную культуру:

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

, а затем

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

должен дать вам желаемый результат. Это должно получить вас:

123,99 кр

1 голос
/ 31 августа 2017

Будьте осторожны с CurrencyNegativePattern

Этот код

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

даст вам

134,99 кр.

кр.134,99кр .-

Изменение CurrencyNegativePattern на 8

swedish.NumberFormat.CurrencyNegativePattern = 8;

Даст вам

134,99кр.

-134,99 кр.

Подробнее https://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.currencynegativepattern(v=vs.110).aspx

...