C#의 E 및 e 사용자 지정 서식 지정자란?
C#에서 서식 문자열에 "E", "E+", "E-", "e", "e+", "e-" 중 하나가 포함되고 그 뒤에 최소 하나 이상의 0이 따라온다면, 해당 숫자는 숫자와 지수 사이에 "E" 또는 "e"가 삽입된 과학적 표기법(scientific notation) 형태로 서식이 지정됩니다.
"E" "E+" "E-" "e" "e+" "e-"
여기서 지정자 뒤에 오는 0의 개수는 출력되는 지수(exponent)의 자릿수를 결정합니다. 예를 들어 E+0은 지수를 최소 한 자리로 표시하고, E+000은 지수를 세 자리로 표시합니다. 소수점 이하의 # 기호는 유효 숫자가 있는 경우에만 표시되는 선택적 자릿수를 의미합니다.
예제 코드
아래 예제에서는 ToString() 메서드와 String.Format() 메서드 두 가지 방식으로 숫자 9400을 과학적 표기법으로 변환합니다.
using System;
using System.Globalization;
class Demo {
static void Main() {
double num = 9400;
Console.WriteLine(num.ToString("0.###E+0", CultureInfo.InvariantCulture));
Console.WriteLine(String.Format(CultureInfo.InvariantCulture, "{0:0.###E+0}", num));
Console.WriteLine(num.ToString("0.###E+000", CultureInfo.InvariantCulture));
Console.WriteLine(String.Format(CultureInfo.InvariantCulture, "{0:0.###E+000}", num));
}
}실행 결과
9.4E+3 9.4E+3 9.4E+003 9.4E+003
결과 분석
위 실행 결과에서 확인할 수 있듯이, ToString() 메서드와 String.Format() 메서드는 동일한 서식 지정자를 사용할 때 같은 결과를 반환합니다.
또한 지정자 뒤의 0 개수에 따라 지수 부분의 자릿수가 달라집니다. "0.###E+0" 형식에서는 지수가 한 자리(9.4E+3)로 표시되고, "0.###E+000" 형식에서는 지수가 세 자리(9.4E+003)로 표시됩니다. 이처럼 E 및 e 사용자 지정 지정자를 활용하면 크거나 작은 숫자를 원하는 정밀도의 과학적 표기법으로 손쉽게 출력할 수 있습니다.