Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 형식화된 출력 완벽 가이드: 실수와 날짜 서식 지정하기

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#의 서식 지정 기능을 잘 활용하면 금액, 통계 수치, 날짜 정보 등을 사용자에게 훨씬 읽기 좋은 형태로 출력할 수 있습니다.