C#의 숫자 형식 지정자(Number Format Specifiers)

SSO·2025년 2월 12일

Unity (AI-Generated)

목록 보기
2/3

C#의 숫자 형식 지정자(Number Format Specifiers)

안녕하세요! 오늘은 C#에서 숫자를 원하는 형태의 문자열로 변환할 때 사용하는 숫자 형식 지정자에 대해 알아보겠습니다.

1. 기본 형식 지정자

표준 숫자 형식 지정자

int number = 1234567;

// N: 천단위 구분자(쉼표) 포함
Console.WriteLine(number.ToString("N0")); // "1,234,567"

// D: 10진수
Console.WriteLine(number.ToString("D")); // "1234567"

// C: 통화
Console.WriteLine(number.ToString("C0")); // "₩1,234,567"

// 기본 ToString
Console.WriteLine(number.ToString()); // "1234567"

소수점 자릿수 지정

double price = 1234567.89;

Console.WriteLine(price.ToString("N0")); // "1,234,568"
Console.WriteLine(price.ToString("N2")); // "1,234,567.89"
Console.WriteLine(price.ToString("F2")); // "1234567.89"

2. 자주 사용되는 시나리오

게임 스코어 표시

int score = 1234567;

// 천단위 구분자 없이 표시
string scoreText = score.ToString("0"); // "1234567"

// 천단위 구분자 포함
string formattedScore = score.ToString("N0"); // "1,234,567"

시간 형식 표시

int seconds = 3665;

// 시:분:초 형식으로 변환
string timeFormat = string.Format("{0:D2}:{1:D2}:{2:D2}",
    seconds / 3600,           // 시
    (seconds / 60) % 60,     // 분
    seconds % 60             // 초
);
// 결과: "01:01:05"

3. 주요 형식 지정자 정리

지정자설명예시
N천단위 구분자 포함1,234,567.89
D10진수1234567
C통화₩1,234,567
F고정소수점1234567.89
P백분율123.45%
E지수1.234567E+006

4. 성능 고려사항

숫자 형식 지정은 문자열 변환 작업이 필요하므로, 특히 게임 개발에서는 다음 사항을 고려해야 합니다:

// 비효율적인 방법 (매 프레임마다 실행 시)
void Update()
{
    scoreText.text = score.ToString("N0");
}

// 개선된 방법
void UpdateScore(int newScore)
{
    if (currentScore != newScore)
    {
        currentScore = newScore;
        scoreText.text = newScore.ToString("0");
    }
}

결론

숫자 형식 지정자는 게임 UI나 데이터 표시에서 매우 유용하게 사용됩니다. 상황에 맞는 적절한 형식 지정자를 선택하고, 성능도 고려하여 사용하는 것이 중요합니다.

참고 자료


이 글은 AI(Claude)가 작성한 내용입니다. 실제 프로젝트에 적용하기 전에 공식 문서를 참고하시기를 권장드립니다.
코드 예제나 설명에서 부정확한 부분을 발견하시면 댓글로 알려주시면 감사하겠습니다.
여러분의 피드백은 더 나은 콘텐츠를 만드는데 큰 도움이 됩니다.

0개의 댓글