"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > std::locale을 사용하여 C++에서 쉼표로 숫자 형식을 지정하는 방법은 무엇입니까?

std::locale을 사용하여 C++에서 쉼표로 숫자 형식을 지정하는 방법은 무엇입니까?

2024-11-07에 게시됨
검색:925

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

C에서 쉼표를 사용하여 숫자 서식 지정

C에서 std::locale 클래스는 쉼표로 숫자 서식을 지정하는 로케일 종속 방법을 제공합니다. .

std::locale with std::stringstream

숫자를 쉼표가 있는 문자열 형식으로 지정하려면 std::stringstream과 함께 std::locale을 사용할 수 있습니다. 다음과 같습니다:

#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"

Double 처리

Double을 쉼표가 있는 문자열로 형식화하려면 위와 동일한 접근 방식을 사용할 수 있지만 코드는 다음과 같습니다. 소수점을 처리해야 합니다:

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

면책 조항:

""가 전달될 때 사용되는 로캘이 시스템에 따라 다를 수 있으므로 위 솔루션의 이식성이 문제가 될 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3