안녕하세요! 오늘은 C#에서 숫자를 원하는 형태의 문자열로 변환할 때 사용하는 숫자 형식 지정자에 대해 알아보겠습니다.
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"
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"
| 지정자 | 설명 | 예시 |
|---|---|---|
| N | 천단위 구분자 포함 | 1,234,567.89 |
| D | 10진수 | 1234567 |
| C | 통화 | ₩1,234,567 |
| F | 고정소수점 | 1234567.89 |
| P | 백분율 | 123.45% |
| E | 지수 | 1.234567E+006 |
숫자 형식 지정은 문자열 변환 작업이 필요하므로, 특히 게임 개발에서는 다음 사항을 고려해야 합니다:
// 비효율적인 방법 (매 프레임마다 실행 시)
void Update()
{
scoreText.text = score.ToString("N0");
}
// 개선된 방법
void UpdateScore(int newScore)
{
if (currentScore != newScore)
{
currentScore = newScore;
scoreText.text = newScore.ToString("0");
}
}
숫자 형식 지정자는 게임 UI나 데이터 표시에서 매우 유용하게 사용됩니다. 상황에 맞는 적절한 형식 지정자를 선택하고, 성능도 고려하여 사용하는 것이 중요합니다.
이 글은 AI(Claude)가 작성한 내용입니다. 실제 프로젝트에 적용하기 전에 공식 문서를 참고하시기를 권장드립니다.
코드 예제나 설명에서 부정확한 부분을 발견하시면 댓글로 알려주시면 감사하겠습니다.
여러분의 피드백은 더 나은 콘텐츠를 만드는데 큰 도움이 됩니다.