Когда я пробую приведенный ниже код, я получаю вывод 2 084 001. Что здесь может быть не так? Разве моя строка формата не должна переопределять текущие настройки культуры?
decimal v = 2084000.7621m;
System.Console.WriteLine(v.ToString("#,###,###"));
System.Console.ReadLine();
Если я изменю код для использования ToString("#,###,###", CultureInfo.InvariantCulture)
, я получу ожидаемый результат, т. е. 2 084 001, но я не могу указать поставщика формата, когда задаю свойство DataFormatString в элементах управления с привязкой к данным.
ВНИМАНИЕ: При использовании экранированного литерального разделителя группы, как описано ниже в принятых и других ответах, используемый литеральный символ всегда выводится, даже если он не нужен, например. применение строки формата #\,###\,###
к значению 324
приводит к выходному значению ,,324
.
ThousandsSeparator
установлен на пробел. - person Oded   schedule 26.08.2011