C#에서 문자열 리터럴의 형식을 지정하려면 String.Format 메서드를 사용합니다. 이 메서드는 복합 형식 지정(composite formatting)을 지원하며, 중괄호 {} 안에 인덱스와 선택적으로 형식 지정자를 넣어 원하는 출력 형태를 만들 수 있습니다.
아래 예제에서 0은 해당 위치에 문자열 값이 삽입될 객체의 인덱스를 나타냅니다.
기본 사용 예제
using System;
namespace Demo {
class Test {
static void Main(string[] args) {
decimal A = 15.2m;
string res = String.Format("Temperature = {0}°C.", A);
Console.WriteLine(res);
}
}
}이 코드를 실행하면 Temperature = 15.2°C.가 출력됩니다. 즉, {0} 자리에 변수 A의 값이 대입되는 방식입니다.
double 형식 문자열 형식 지정 예제
다음 예제에서는 double 형식의 숫자에 대해 소수점 자릿수 제한과 천 단위 구분 기호를 적용하는 방법을 살펴보겠습니다.
예제
using System;
class Demo {
public static void Main(String[] args) {
Console.WriteLine("소수점 세 자리까지 표시...");
Console.WriteLine(String.Format("{0:0.000}", 987.383));
Console.WriteLine(String.Format("{0:0.000}", 987.38));
Console.WriteLine(String.Format("{0:0.000}", 987.7899));
Console.WriteLine("천 단위 구분 기호...");
Console.WriteLine(String.Format("{0:0,0.0}", 54567.46));
Console.WriteLine(String.Format("{0:0,0}", 54567.46));
}
}출력 결과
소수점 세 자리까지 표시... 987.383 987.380 987.790 천 단위 구분 기호... 54,567.5 54,567
형식 지정자 설명
위 예제에서 사용된 형식 지정자의 의미는 다음과 같습니다.
0.000 : 숫자를 소수점 아래 세 자리까지 표시합니다. 자릿수가 부족하면 0으로 채워지고(987.38 → 987.380), 초과하면 반올림됩니다(987.7899 → 987.790).
0,0.0 및 0,0 : 콤마(,)는 천 단위 구분 기호로 작동하여 큰 숫자를 읽기 쉽게 표시합니다. 소수점 이하 자릿수 지정 여부에 따라 54,567.5 또는 54,567처럼 출력됩니다.
이처럼 String.Format 메서드를 활용하면 숫자, 날짜, 통화 등 다양한 데이터를 원하는 형식으로 손쉽게 문자열에 삽입할 수 있습니다. 참고로 C# 6.0 이상에서는 $"Temperature = {A}°C."와 같은 문자열 보간(string interpolation) 문법도 사용할 수 있어 더욱 간결한 코드 작성이 가능합니다.