Показать символ валюты после значений

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

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

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


person R100    schedule 11.03.2011    source источник


Ответы (3)


Все, что вам нужно, это изменить 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 kr

person Alex    schedule 11.03.2011
comment
Да, это работает! Спасибо, Алекс. Просто чтобы я понял, что ты сделал. Все, что мне нужно было, это добавить методы CurrencyPositivePattern и CurrencyNegativePattern, чтобы переместить символ валюты в конец? - person R100; 11.03.2011
comment
@ R100: да, но это свойства (не методы) класса NumberFormatInfo. - person Alex; 11.03.2011

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

Этот код

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

Дам тебе

134,99 kr.

kr.134,99kr.-

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

swedish.NumberFormat.CurrencyNegativePattern = 8;

Дам тебе

134,99 kr.

-134,99 kr.

Дополнительная информация https://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.currencynegativepattern(v=vs.110).aspx

person Kim    schedule 31.08.2017

person    schedule
comment
Если это решит проблему, объяснение сделает этот ответ лучшим. - person matt freake; 20.01.2020