Десятичный разделитель и тысяча разделителей для региона en-ZA - это ',' и '' соответственно, но обычно используются разделители '.' для десятичной, плюс мой пользователь хочет ',' для разделителя тысяч. Я хочу установить их глобально, чтобы мне приходилось использовать только строку формата {0:C}
для всех моих полей валюты, без каких-либо явных вызовов Format
или ToString
.
Я бы предпочел иметь возможность делать это без изменения настроек культуры на веб-сервере, поскольку мне также нужно установить десятичные разряды для валюты на ноль, так как центы не нужны при составлении отчетов по оценкам R100k и выше и т. Д. Я не хотел бы произвольно устанавливать всю культуру на ноль мест, только один для этого приложения.
В комментариях к своему ответу по на этот вопрос Джон Скит предлагает клонировать текущую культуру и настройки и изменить необходимые настройки. Я сделал это следующим образом:
void Application_Start(object sender, EventArgs e)
{
var newCulture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
newCulture.NumberFormat.CurrencyDecimalSeparator = ".";
newCulture.NumberFormat.CurrencyGroupSeparator = ",";
}
Однако, как мне активировать эту новую культуру для всех запросов, которые приложение обрабатывает с этого момента? Есть ли другой способ достичь того, что я хочу сделать?