본문 바로가기
프로그래밍/C#

C# 숫자 서식 지정자(Number Format Specifier)

by bantomak 2023. 2. 21.

표준 출력 형식의 문법

 

{n,w:tp}

예시 : {0,10:N2}

 

키워드 명칭
n 인자 Argument
w 출력 범위 Width
t 데이타 타입 Data Type
p 정확도 Precision

 

decimal val = 1234.5678M;
string s = string.Format("{0,10:N2}", val);
// 출력: "  1,234.57"
Console.WriteLine(s);

 

{0,10:N2} : 첫 번째 인자인 val을 받아서 전체 넓이 10으로 앞의 공백 포함 10자리 표현하고 N(Numberic) 형식으로 표현된다. 소수점 이하는 2자리까지 표시한다.

 

표준 숫자 서식 문자열 (Standard numeric format strings)

static void Main(string[] args)
{
    // N: Number 타입
    var n = string.Format("{0:N2} {1:N4}", 1234.567, 342.35453);
    var n1 = $"{1234.567:N2} {342.35453:N4}"; // string interpolation

    Console.WriteLine(n);   // 1234.56 342.3545
    Console.WriteLine(n1);  // 1234.56 342.3545

    // D: Decimal 타입
    var d = string.Format("{0,5:D9}", 12345);
    var d1 = $"{12345:D9}";

    Console.WriteLine(d);  // 000012345
    Console.WriteLine(d1); // 000012345

    // C: Currency 타입
    var c = string.Format("{0:C}", 12345); 
    var c1 = string.Format("{0:C0}", 12345); 

    Console.WriteLine(c);   // $12,345
    Console.WriteLine(c1);  // $12,345

    // X: 16진수
    var x = string.Format("{0:X}", 1000); 
    Console.WriteLine("0x" + x); // 0x3E8

    // F: Fixed Point
    var f = string.Format("{0:F3}", 12345.6); 
    Console.WriteLine(f); // 12345.600g

    // E: Scientific
    var e = string.Format("{0:E}", 12345.6); // 1.23456E+004
    Console.WriteLine(e);
}

 

{n:tp}

예시 : {0:N2}

해당 형태로도 표현이 가능하다.

 

추가적으로 C# 6.0부터 추가된 문자열 보간(String Interpolation)과 함께 사용이 가능하다.

Console.WriteLine($"{Math.Sqrt(9):N0}");

 

날짜 서식 지정

static void Main(string[] args)
{
    var time1 = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.UtcNow);
    var time2 = string.Format($"{DateTime.UtcNow:yyyy-MM-dd HH:mm:ss}");

    Console.WriteLine(time1);
    Console.WriteLine(time2);
}

같은 맥락으로 날짜 시간 서식지정이 가능하다.

 

함께 읽으면 좋은 글

 

C# Convert 메서드

Convert.ToString(Int32, Int32) 정의 네임스페이스: System 어셈블리: System.Runtime.dll 32비트 부호 있는 정수 값을 지정된 기수에 해당하는 문자열 표현으로 변환합니다. value를 특정 진수로 변환한다. public s

jettstream.tistory.com

댓글