C#에서는 Console.WriteLine()과 String.Format() 메서드를 활용하면 숫자나 날짜를 원하는 형식으로 깔끔하게 출력할 수 있습니다. 이 글에서는 double(실수) 타입과 DateTime(날짜·시간) 타입의 대표적인 서식 지정 방법을 예제 코드와 실행 결과와 함께 살펴보겠습니다.
1. 실수(double) 타입의 형식화된 출력
double 타입 값의 출력 서식을 지정하는 대표적인 방법은 다음과 같습니다.
- {0:0.000} — 소수점 이하 세 자리까지 고정하여 표시합니다. 자릿수가 부족하면 0으로 채워지고, 초과하면 반올림됩니다.
- {0:0,0} — 천 단위마다 콤마(,)로 자릿수를 구분하여 표시합니다.
예제
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
실행 결과를 보면 987.38은 소수점 셋째 자리까지 강제로 표시되어 987.380이 되고, 987.7899는 반올림되어 987.790으로 출력됩니다. 또한 {0:0,0} 서식은 큰 숫자를 한눈에 읽기 쉽도록 천 단위마다 콤마를 삽입해 줍니다.
2. DateTime 타입의 형식화된 출력
DateTime 객체의 연도, 월, 일은 아래와 같은 사용자 지정 서식 지정자로 다양한 형태로 출력할 수 있습니다.
- y yy yyy yyyy — 연도를 1자리, 2자리, 3자리, 4자리로 표시
- M MM MMM MMMM — 월을 숫자(1자리/2자리) 또는 영문 약어(Feb), 전체 이름(February)으로 표시
- d dd ddd dddd — 일을 숫자(1자리/2자리) 또는 요일 약어(Thu), 전체 이름(Thursday)으로 표시
예제
using System;
static class Demo {
static void Main() {
DateTime d = new DateTime(2018, 2, 8, 12, 7, 7, 123);
Console.WriteLine(String.Format("{0:y yy yyy yyyy}", d));
Console.WriteLine(String.Format("{0:M MM MMM MMMM}", d));
Console.WriteLine(String.Format("{0:d dd ddd dddd}", d));
}
}
실행 결과
18 18 2018 2018 2 02 Feb February 8 08 Thu Thursday
같은 값이라도 서식 지정자의 개수에 따라 표현 방식이 달라지는 것을 확인할 수 있습니다. 예를 들어 'M' 하나는 월을 2로, 'MMMM'은 February처럼 전체 이름으로 출력합니다.
참고: 문자열 보간(String Interpolation)
C# 6.0부터는 String.Format() 대신 문자열 보간($"...") 문법을 사용하면 더 간결하고 직관적으로 코드를 작성할 수 있습니다. 서식 지정자는 그대로 콜론(:) 뒤에 붙여 사용합니다.
double value = 987.38;
DateTime d = new DateTime(2018, 2, 8);
Console.WriteLine($"{value:0.000}"); // 987.380
Console.WriteLine($"{d:yyyy-MM-dd}"); // 2018-02-08
이처럼 C#의 서식 지정 기능을 잘 활용하면 금액, 통계 수치, 날짜 정보 등을 사용자에게 훨씬 읽기 좋은 형태로 출력할 수 있습니다.