Форматирование валюты с динамическим символом валюты - PullRequest
1 голос
/ 30 апреля 2011

В C # код Console.WriteLine("{0:c}", 998); дает вывод $998 в настройках по умолчанию "US-Language". Но если я хочу динамически изменить свой символ валюты на фунт, стерлинг, рупию или любой другой символ валюты в зависимости от предпочтений пользователя, есть ли способ сделать это. Скажем, я вызываю метод:

public void PrintInRightCurrencyFormat(decimal value, ICustomFormatter format)
{
     Console.WriteLine( ... ... ... );
}

И этот метод напечатает значение в требуемом формате.

Еще одна вещь - есть ли способ вставить пользовательский символ валюты. Я хочу сказать, что если валюта поставляется с новым символом (как Индия сделала с символом рупии), как включить это немедленно в коде.

Спасибо всем заранее.

1 Ответ

3 голосов
/ 30 апреля 2011

Вы можете использовать культуру:

Console.WriteLine(string.Format(new CultureInfo("en-GB"), "{0:c}", value));

или просто установить текущую культуру потоков в соответствии с предпочтениями пользователя и затем вывести значение:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
Console.WriteLine("{0:c}", value);
...