Форматирование строк в группы по 3 цифры по периодам

Я знаю, что могу форматировать строки с помощью метода String.Format(). Можно ли форматировать это?

Пример:

string: 1568    отформатировано: 1,568

string: 168794521    отформатировано: 168.794.521

строка: 987    отформатировано: 987

Извините, что я не могу сделать себя более ясным.

3 ответа

string someNumericValue = "168794521";
int number = int.Parse(someNumericValue); // error checking might be appropriate
value.ToString("0,0", CultureInfo.CreateSpecificCulture("el-GR"));

Это добавит точки для тысяч спецификаторов.

Возможно, что, если вы этого хотите, ваша культура уже может это сделать.


Вы можете форматировать номер таким образом, но не строку. Например, если у вас есть целочисленное значение, вы можете использовать:

int value = 168794521;
string formatted = value.ToString("N0");

При правильной культуре это будет отформатировать, как показано.

Если вы используете строку, вам нужно ее преобразовать. Вы также можете явно предоставить культуру, чтобы гарантировать ". как разделитель тысяч:

int value = Int32.Parse("168794521");
string formatted = value.ToString("N0", new CultureInfo("de-DE"));


Да, вы можете это сделать. SteveX написал отличный пост в блоге по форматированию строк. Вы также можете посмотреть этот пост в блоге и документация MSDN.

Вероятно, вы захотите посмотреть нижнюю часть этой документации в разделе "Дополнительные ресурсы" для получения дополнительной информации о различных типах строк стандартного формата.

Вот часть от блога SteveX по номерам форматирования:

  • Валюта {0:c}
  • Десятичное число (целое число) {0:d}
  • Scientific {0:e}
  • Фиксированная точка {0:f}
  • Общие сведения {0:g}
  • Число с запятыми для тысяч {0:n}

licensed under cc by-sa 3.0 with attribution.