«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как форматировать числа с помощью запятых в C++, используя std::locale?

Как форматировать числа с помощью запятых в C++, используя std::locale?

Опубликовано 7 ноября 2024 г.
Просматривать:111

How to Format Numbers with Commas in C   Using std::locale?

Форматирование чисел с помощью запятых в C

В C класс std::locale предоставляет зависящий от локали способ форматирования чисел с помощью запятых .

std::locale с std::stringstream

Чтобы отформатировать число в виде строки с запятыми, вы можете использовать std::locale с std::stringstream следующим образом:

#include 
#include 

template
std::string FormatWithCommas(const T& value) {
  std::stringstream ss;
  ss.imbue(std::locale(""));  // Use the system's locale
  ss 

Пример использования:

std::string result1 = FormatWithCommas(7800);
std::string result2 = FormatWithCommas(5100100);
std::string result3 = FormatWithCommas(201234567890);

// result1 = "7,800"
// result2 = "5,100,100"
// result3 = "201,234,567,890"

Обработка двойных чисел

Чтобы отформатировать двойное число как строку с запятыми, вы можете использовать тот же подход, что и выше, но код будет необходимо обработать десятичную точку:

template
std::string FormatWithCommas(const T& value) {
  std::stringstream ss;
  ss.imbue(std::locale(""));
  ss 

Отказ от ответственности:

Обратите внимание, что переносимость приведенных выше решений может быть проблемой, поскольку локаль, используемая при передаче "", может различаться в зависимости от системы.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3