본문 바로가기
.NET

WPF 문자열 포맷 정리 (String Format)

by leo21c 2017. 2. 10.
SMALL

참조 문서: 

https://msdn.microsoft.com/ko-kr/library/dwhawy9k(v=vs.110).aspx
https://msdn.microsoft.com/ko-kr/library/0c899ak8(v=vs.110).aspx


하도 잊어 버려서 MSDN 내용을 이곳에 저장했다.
매번 할 때마다 잊어버린다. ㅠㅠ


/////////////////////////////////////////////////////////////////////////////////////


표준 숫자 형식 문자열


표준 숫자 서식 문자열은 일반 숫자 형식의 서식을 지정하는 데 사용됩니다. 표준 숫자 서식 문자열은
 Axx 형식을 취합니다. 여기서
  • A는 서식 지정자라는 단일 영문자입니다. 공백을 포함하여 영문자가 두 개 이상 포함된 숫자 서식 문자열은 사용자 지정 숫자 서식 문자열로 해석됩니다. 자세한 내용은 사용자 지정 숫자 형식 문자열을 참조하세요.

  • xx는 전체 자릿수 지정자라는 선택적 정수입니다. 전체 자릿수 지정자는 0에서 99 사이의 정수이며 결과의 자릿수에 영향을 줍니다. 전체 자릿수 지정자는 숫자의 문자열 표현에서 자릿수를 제어합니다. 숫자 자체는 반올림하지 않습니다. 반올림 연산을 수행하려면 Math.CeilingMath.Floor 또는 Math.Round 메서드를 사용합니다.

    전체 자릿수 지정자가 결과 문자열의 소수 자릿수를 제어하는 경우 결과 문자열은 0에서 멀어지는 쪽으로 반올림되는 숫자를 반영합니다(즉, MidpointRounding.AwayFromZero 사용).

형식 지정자이름설명예제
"C" 또는 "c"통화결과: 통화 값

지원되는 형식: 모든 숫자 형식

전체 자릿수 지정자: 소수 자릿수

기본 전체 자릿수 지정자: NumberFormatInfo.CurrencyDecimalDigits에 의해 정의됨

추가 정보: 통화("C") 서식 지정자.
123.456 ("C", en-US) -> $123.46

123.456 ("C", fr-FR) -> 123,46 €

123.456 ("C", ja-JP) -> ¥123

-123.456 ("C3", en-US) -> ($123.456)

-123.456 ("C3", fr-FR) -> -123,456 €

-123.456 ("C3", ja-JP) -> -¥123.456
"D" 또는 "d"Decimal결과: 정수(선택적 음수 기호 포함)

지원되는 형식: 정수 계열 형식만 지원됨

전체 자릿수 지정자: 최소 자릿수

기본 전체 자릿수 지정자: 필요한 최소 자릿수

추가 정보: 10진수("D") 서식 지정자.
1234 ("D") -> 1234

-1234 ("D6") -> -001234
"E" 또는 "e"지수(과학적 표기법)결과: 지수 표기법

지원되는 형식: 모든 숫자 형식

전체 자릿수 지정자: 소수 자릿수

기본 전체 자릿수 지정자: 6

추가 정보: "E"(지수) 서식 지정자.
1052.0329112756 ("E", en-US) -> 1.052033E+003

1052.0329112756 ("e", fr-FR) -> 1,052033e+003

-1052.0329112756 ("e2", en-US) -> -1.05e+003

-1052.0329112756 ("E2", fr_FR) -> -1,05E+003
"F" 또는 "f"고정 소수점결과: 선택적 음수 기호가 있는 정수 부분과 소수 부분

지원되는 형식: 모든 숫자 형식

전체 자릿수 지정자: 소수 자릿수

기본 전체 자릿수 지정자: NumberFormatInfo.NumberDecimalDigits에 의해 정의됨

추가 정보: 고정 소수점("F") 서식 지정자
1234.567 ("F", en-US) -> 1234.57

1234.567 ("F", de-DE) -> 1234,57

1234 ("F1", en-US) -> 1234.0

1234 ("F1", de-DE) -> 1234,0

-1234.56 ("F4", en-US) -> -1234.5600

-1234.56 ("F4", de-DE) -> -1234,5600
"G" 또는 "g"일반결과: 가장 간단한 형태의 고정 소수점 또는 과학적 표기법

지원되는 형식: 모든 숫자 형식

전체 자릿수 지정자: 유효 자릿수

기본 전체 자릿수 지정자: 숫자 형식에 따라 다름

추가 정보: 일반("G") 서식 지정자
-123.456 ("G", en-US) -> -123.456

-123.456 ("G", sv-SE) -> -123,456

123.4546 ("G4", en-US) -> 123.5

123.4546 ("G4", sv-SE) -> 123,5

-1.234567890e-25 ("G", en-US) -> -1.23456789E-25

-1.234567890e-25 ("G", sv-SE) -> -1,23456789E-25
"N" 또는 "n"숫자결과: 선택적 음수 기호가 있는 정수 부분과 소수 부분, 그룹 구분 기호 및 소수 구분 기호

지원되는 형식: 모든 숫자 형식

전체 자릿수 지정자: 필요한 소수 자릿수

기본 전체 자릿수 지정자: NumberFormatInfo.NumberDecimalDigits에 의해 정의됨

추가 정보: 숫자("N") 서식 지정자
1234.567 ("N", en-US) -> 1,234.57

1234.567 ("N", ru-RU) -> 1 234,57

1234 ("N1", en-US) -> 1,234.0

1234 ("N1", ru-RU) -> 1 234,0

-1234.56 ("N3", en-US) -> -1,234.560

-1234.56 ("N3", ru-RU) -> -1 234,560
"P" 또는 "p"백분율결과: 100으로 곱하고 백분율 기호와 함께 표시되는 숫자

지원되는 형식: 모든 숫자 형식

전체 자릿수 지정자: 필요한 소수 자릿수

기본 전체 자릿수 지정자: NumberFormatInfo.PercentDecimalDigits에 의해 정의됨

추가 정보: 백분율("P") 서식 지정자
1 ("P", en-US) -> 100.00 %

1 ("P", fr-FR) -> 100,00 %

-0.39678 ("P1", en-US) -> -39.7 %

-0.39678 ("P1", fr-FR) -> -39,7 %
"R" 또는 "r"라운드트립결과: 해당 숫자로 라운드트립할 수 있는 문자열

지원되는 형식: SingleDouble 및 BigInteger

전체 자릿수 지정자: 무시됨

추가 정보: 라운드트립("R") 서식 지정자
123456789.12345678 ("R") -> 123456789.12345678

-1234567890.12345678 ("R") -> -1234567890.1234567
"X" 또는 "x"16진수결과: 16진수 문자열

지원되는 형식: 정수 계열 형식만 지원됨

전체 자릿수 지정자: 결과 문자열의 자릿수

추가 정보: 16진수("X") 서식 지정자
255 ("X") -> FF

-1 ("x") -> ff

255 ("x4") -> 00ff

-1 ("X4") -> 00FF
기타 모든 단일 문자알 수 없는 지정자결과: 런타임에 FormatException이 throw됨




사용자 지정 숫자 형식 문자열


하나 이상의 사용자 지정 숫자 서식 지정자로 구성된 사용자 지정 숫자 서식 문자열을 만들어 숫자 데이터의 서식을 지정하는 방법을 정의할 수 있습니다.
 사용자 지정 숫자 서식 문자열은 표준 숫자 서식 문자열이 아닌 모든 서식 문자열입니다.

사용자 지정 숫자 서식 문자열은 모든 숫자 형식의 ToString 메서드를 오버로드하여 사용할 수 있습니다. 예를 들어 ToString(String) 형식의 ToString(String, IFormatProvider) 및 Int32 메서드에 숫자 서식 문자열을 제공할 수 있습니다. Console 및 StreamWriter 클래스의 일부 Write 및 WriteLine 메서드, String.Format 메서드, StringBuilder.AppendFormat 메서드에 사용되는 .NET Framework 복합 서식 지정 기능을 통해서도 사용자 지정 숫자 서식 문자열을 사용할 수 있습니다.

다음 표에서는 사용자 지정 숫자 서식 지정자 및 각 서식 지정자로 생성되는 샘플 출력을 보여 줍니다. 사용자 지정 숫자 서식 문자열을 사용하는 방법에 대한 자세한 내용은 참고 단원을 참조하고, 이러한 사용 방법을 자세히 보여 주는 예제를 보려면 예제 단원을 참조하세요.

형식 지정자

name

설명

예제

"0"

0 자리 표시자

해당 숫자가 있을 경우 0을 해당 숫자로 바꾸고, 그렇지 않으면 결과 문자열에 0을 표시합니다.

추가 정보: "0" 사용자 지정 지정자

1234.5678 ("00000") -> 01235

0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46

"#"

10진수 자리 표시자

해당 숫자가 있을 경우 "#" 기호를 해당 숫자로 바꾸고, 그렇지 않으면 결과 문자열에 숫자를 표시하지 않습니다.

입력 문자열의 해당 숫자가 의미 없는 0인 경우 결과 문자열에 숫자를 표시하지 않습니다. 예를 들어 0003 ("####") -> 3입니다.

추가 정보: "#" 사용자 지정 지정자

1234.5678 ("#####") -> 1235

0.45678 ("#.##", en-US) -> .46

0.45678 ("#.##", fr-FR) -> ,46

"."

소수점

결과 문자열에서 소수 구분 기호의 위치를 결정합니다.

추가 정보: "." 사용자 지정 지정자

0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46

","

그룹 구분 기호 및 숫자 배율

그룹 구분 기호 지정자와 숫자 배율 지정자로 모두 사용됩니다. 그룹 구분 기호로 사용될 경우 각 그룹 사이에 지역화된 그룹 구분 기호 문자를 삽입합니다. 숫자 배율 지정자로 사용될 경우 숫자를 쉼표 단위로 끊어서 1000으로 나눕니다.

추가 정보: "," 사용자 지정 지정자

그룹 구분 기호 지정자:

2147483647 ("##,#", en-US) -> 2,147,483,647

2147483647 ("##,#", es-ES) -> 2.147.483.647

배율 지정자:

2147483647 ("#,#,,", en-US) -> 2,147

2147483647 ("#,#,,", es-ES) -> 2.147

"%"

백분율 자리 표시자

숫자에 100을 곱하고 결과 문자열에 지역화된 백분율 기호를 삽입합니다.

추가 정보: "%" 사용자 지정 지정자

0.3697 ("%#0.00", en-US) -> %36.97

0.3697 ("%#0.00", el-GR) -> %36,97

0.3697 ("##.0 %", en-US) -> 37.0 %

0.3697 ("##.0 %", el-GR) -> 37,0 %

"‰"

천분율 자리 표시자

숫자에 1000을 곱하고 결과 문자열에 지역화된 천분율 기호를 삽입합니다.

추가 정보: "‰" 사용자 지정 지정자

0.03697 ("#0.00‰", en-US) -> 36.97‰

0.03697 ("#0.00‰", ru-RU) -> 36,97‰

"E0"

"E+0"

"E-0"

"e0"

"e+0"

"e-0"

지수 표기법

적어도 하나의 0이 뒤에 오면 지수 표기법을 사용하여 결과의 서식을 지정합니다. "E" 또는 "e" 문자는 결과 문자열에 표시되는 지수 기호의 대/소문자를 나타냅니다. "E" 또는 "e" 문자 뒤에 오는 0의 수에 따라 지수의 최소 자릿수가 결정됩니다. 더하기 기호(+)는 기호 문자가 항상 지수 앞에 온다는 것을 나타냅니다. 빼기 기호(-)는 기호 문자가 음의 지수 앞에만 온다는 것을 나타냅니다.

추가 정보: "E" 및 "e" 사용자 지정 지정자

987654 ("#0.0e0") -> 98.8e4

1503.92311 ("0.0##e+00") -> 1.504e+03

1.8901385E-16 ("0.0e+00") -> 1.9e-16

\

이스케이프 문자

뒤에 오는 문자가 사용자 지정 형식 지정자가 아닌 리터럴로 해석되도록 합니다.

추가 정보: "\" 이스케이프 문자

987654 ("\###00\#") -> #987654#

'string'

"string"

리터럴 문자열 구분 기호

괄호로 묶인 문자가 변경되지 않은 상태로 결과 문자열에 복사되어야 함을 나타냅니다.

68 ("# ' degrees'") -> 68 degrees

68 ("#' degrees'") -> 68 degrees

;

섹션 구분 기호

양수, 음수 및 0에 따라 별도의 서식 문자열을 사용하여 섹션을 정의합니다.

추가 정보: ";" 섹션 구분 기호

12.345 ("#0.0#;(#0.0#);-\0-") -> 12.35

0 ("#0.0#;(#0.0#);-\0-") -> -0-

-12.345 ("#0.0#;(#0.0#);-\0-") -> (12.35)

12.345 ("#0.0#;(#0.0#)") -> 12.35

0 ("#0.0#;(#0.0#)") -> 0.0

-12.345 ("#0.0#;(#0.0#)") -> (12.35)

기타

다른 모든 문자

문자가 변경되지 않은 상태로 결과 문자열에 복사됩니다.

68 ("# °") -> 68 °


LIST