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