> 백엔드 개발 > C++ > 본문

가독성을 높이기 위해 C에서 큰 숫자의 형식을 쉼표로 지정하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-10-26 20:11:02
원래의
407명이 탐색했습니다.

How can I format large numbers with commas in C   for better readability?

C의 숫자 쉼표 서식 지정

많은 시나리오에서는 가독성을 위해 숫자를 쉼표로 표시해야 합니다. C에서는 다음 접근 방식을 사용하여 이를 효율적으로 수행할 수 있습니다.

std::locale 및 std::stringstream 사용

이 방법에는 std::locale 라이브러리를 활용하여 서식을 적용해야 합니다. 다음은 템플릿 기반 구현입니다.

<code class="cpp">#include <iomanip>
#include <locale>

template<class T>
std::string FormatWithCommas(T value)
{
    std::stringstream ss;
    ss.imbue(std::locale(""));
    ss << std::fixed << value;
    return ss.str();
}</code>
로그인 후 복사

로케일을 명시적으로 ""(빈 문자열)로 설정하면 일반적으로 사용자의 시스템 로케일 설정과 일치하는 기본 로케일이 사용됩니다.

Double 형식 지정

Double도 처리하려면 약간의 수정이 필요합니다.

<code class="cpp">template<class T>
std::string FormatWithCommas(T value)
{
    std::stringstream ss;
    ss.imbue(std::locale(""));
    ss << std::fixed << std::setprecision(2) << value;
    return ss.str();
}</code>
로그인 후 복사

표시되는 소수 자릿수를 제어하기 위해 std::setprecision 메소드가 추가되었습니다.

사용 예

FormatWithCommas 함수의 사용법을 설명하려면:

<code class="cpp">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"</code>
로그인 후 복사

이식성 참고 사항

이 접근 방식은 다양한 로케일에서 이식성 문제에 직면할 수 있다는 점에 유의하는 것이 중요합니다. . 따라서 사용되는 로케일을 신중하게 고려하거나 필요한 경우 사용자 정의 로케일 지정 메커니즘을 사용하는 것이 좋습니다.

위 내용은 가독성을 높이기 위해 C에서 큰 숫자의 형식을 쉼표로 지정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!