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