Форматирование чисел с помощью запятых в 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