String.Format()
는 어떤 변수나 값을 어떤 문자열에 삽입하여 하나의 문자열을 만듭니다. 이 과정에서 숫자 또는 변수 값을 특정 문자열 형식으로 변환할 수 있습니다.
1. 문자열에 변수 값 삽입
String.Format()
의 Syntax는 다음과 같습니다.
format(string, object, object, ...)
아래와 같이 문자열에 특정 값들을 삽입하여 하나의 문자열로 만들 수 있습니다.
- format 문자열이
{0}, {1}, {2}
일 때, 인자로 전달된 값들이 순차적으로{Index}
에 삽입됩니다. {0:X}, {1:F}, {2,10}
처럼 format의 Index 뒤에 옵션을 입력하면, 값이 다른 형태로 변환됩니다.
namespace Example {
public class Program {
public static void Main(string[] args) {
int x = 1200;
double y = 3.14;
string z = "hello";
string result = String.Format("x: {0}, y: {1}, z: {2}", x, y, z);
Console.WriteLine(result);
result = String.Format("x: {0:X}, y: {1:F}, z: {2,10}", x, y, z);
Console.WriteLine(result);
}
}
}
Output:
x: 1200, y: 3.14, z: hello
x: 4B0, y: 3.140, z: hello
2. 10진수, N자리수 숫자로 표현
D+N
은 숫자를 10진수의 N자리 숫자로 표현합니다.
{0:D3}
: 숫자가 3개자리 미만, 나머지는 0으로 채움{0:D5}
: 숫자가 5개자리 미만, 나머지는 0으로 채움{0:D8}
: 숫자가 8개자리 미만, 나머지는 0으로 채움
namespace Example {
public class Program {
public static void Main(string[] args) {
int n2 = 1234;
Console.WriteLine(String.Format("1. {0:D3}", n2));
Console.WriteLine(String.Format("2. {0:D5}", n2));
Console.WriteLine(String.Format("3. {0:D6}", n2));
Console.WriteLine(String.Format("4. {0:D8}", n2));
}
}
}
Output:
1. 1234
2. 01234
3. 001234
4. 00001234
3. 16진수 변환
숫자를 16진수로 변환하여 표현할 수 있습니다.
{0:X}
: 16진수로 변환, 알파벳은 대문자로 표기{0:x}
: 16진수로 변환, 알파벳은 소문자로 표기0x{0:x8}
: 16진수 앞에 Ox 추가, 8자리의 숫자로 표현
namespace Example {
public class Program {
public static void Main(string[] args) {
int n = 1234;
Console.WriteLine(String.Format("1. {0:X}", n));
Console.WriteLine(String.Format("2. {0:x}", n));
Console.WriteLine(String.Format("3. 0x{0:x8}", n));
}
}
}
Output:
1. 4D2
2. 4d2
3. 0x000004d2
4. 통화 형식
숫자를 통화 형식으로 변환할 수 있습니다.
{0:C}
: 통화 형식으로 변환, 소수점 아래 2자리까지 보여줌{0:C0}
: 통화 형식으로 변환, 소수점 아래 숫자 생략{0:C4}
: 통화 형식으로 변환, 소수점 아래 4자리까지 보여줌
namespace Example {
public class Program {
public static void Main(string[] args) {
int n = 1200000000;
Console.WriteLine(String.Format("1. {0:C}", n));
Console.WriteLine(String.Format("2. {0:C0}", n));
Console.WriteLine(String.Format("3. {0:C4}", n));
}
}
}
Output:
1. $1,200,000,000.00
2. $1,200,000,000
3. $1,200,000,000.0000
5. 3자리마다 Comma 입력
아래와 같이 3자리 마다 Comma를 입력할 수 있습니다.
{0}
: 변수의 값이 입력됨{0:N0}
: 3자리 단위 마다 comma가 추가됨, 소수점 아래 숫자는 보여주지 않음{0:N2}
: 3자리 단위 마다 comma가 추가됨, 소수점 아래 2자리 숫자까지 보여줌
namespace Example {
public class Program {
public static void Main(string[] args) {
int n = 1200000000;
Console.WriteLine(String.Format("1. {0}", n));
Console.WriteLine(String.Format("2. {0:N0}", n));
Console.WriteLine(String.Format("3. {0:N2}", n));
}
}
}
Output:
1. 1200000000
2. 1,200,000,000
3. 1,200,000,000.00
6. 반올림
0.#
와 같은 형식으로 소수점 아래 몇자리에서 반올림을 할 수 있습니다.
0.#
소수점 아래 2자리에서 반올림을하여 소수점 아래 1자리까지 표현0.###
소수점 아래 4자리에서 반올림을하여 소수점 아래 3자리까지 표현
namespace Example {
public class Program {
public static void Main(string[] args) {
double n = 12.345678;
Console.WriteLine(String.Format("1. {0:0.#}", n));
Console.WriteLine(String.Format("2. {0:0.##}", n));
Console.WriteLine(String.Format("3. {0:0.###}", n));
Console.WriteLine(String.Format("4. {0:0.####}", n));
Console.WriteLine(String.Format("5. {0:0.#####}", n));
}
}
}
Output:
1. 12.3
2. 12.35
3. 12.346
4. 12.3457
5. 12.34568
7. 부동 소수점, 고정 소수점 표현
{0:F}
: 고정 소수점 형식으로 표현, 소수점 아래 3자리까지 보여줌{0:F2}
: 고정 소수점 형식으로 표현, 소수점 아래 2자리까지 보여줌{0:E}
: 부동 소수점 형식으로 표현, 소수점 아래 6자리까지 보여줌{0:E2}
: 부동 소수점 형식으로 표현, 소수점 아래 2자리까지 보여줌
namespace Example {
public class Program {
public static void Main(string[] args) {
double n = 1234.5;
Console.WriteLine(String.Format("1. {0:F}", n));
Console.WriteLine(String.Format("2. {0:F2}", n));
Console.WriteLine(String.Format("3. {0:E}", n));
Console.WriteLine(String.Format("4. {0:E2}", n));
}
}
}
Output:
1. 1234.500
2. 1234.50
3. 1.234500E+003
4. 1.23E+003
8. 패딩
특정한 공간을 할당하고, 숫자를 오른쪽 또는 왼쪽에 배치시킬 수 있습니다.
{0,10:D}
: 10개 공간을 할당하고 숫자를 10진수로 표현하고 오른쪽에 배치{0,-10:D}
: 10개 공간을 할당하고 숫자를 10진수로 표현하고 왼쪽에 배치{0,10:X}
: 10개 공간을 할당하고 숫자를 16진수로 표현하고 오른쪽에 배치{0,-10:F}
: 10개 공간을 할당하고 숫자를 고정 소수점으로 표현하고 왼쪽에 배치
namespace Example {
public class Program {
public static void Main(string[] args) {
int n = 1234;
Console.WriteLine(String.Format("1. ({0,10:D})", n));
Console.WriteLine(String.Format("2. ({0,-10:D})", n));
Console.WriteLine(String.Format("3. ({0,10:X})", n));
Console.WriteLine(String.Format("4. ({0,-10:X})", n));
double n2 = 123.4;
Console.WriteLine(String.Format("3. ({0,10:F})", n2));
Console.WriteLine(String.Format("4. ({0,-10:F})", n2));
}
}
}
Output:
1. ( 1234)
2. (1234 )
3. ( 4D2)
4. (4D2 )
3. ( 123.400)
4. (123.400 )
Loading script...
Related Posts
- C# 바이트(Byte) 배열을 문자열로 변환
- C# String.format() 함수 알아보기
- C# - foreach (Array, List, Dictionary)
- C# 프로퍼티(Property) Get/Set 함수
- C# - Dictionary에서 key, value 가져오기
- C# - Dictionary 순회, foreach, for 루프
- C# - Dictionary에서 key, value 삭제
- C# - Dictionary.add()로 데이터 추가
- C# - Dictionary 선언 및 초기화
- C# - 문자열을 Double, Float으로 변환
- C# - 문자열을 리스트로 변환
- C# - 두 날짜/시간 비교, DateTime.Compare()
- C# - 날짜 계산, DateTime 시간 더하기 빼기
- C# - 날짜 문자열을 DateTime으로 변환
- C# - Sleep, 몇 초간 지연시키기
- C# - Timestamp(millisecond)를 DateTime 객체로 변환
- C# - 현재 시간 가져오기, DateTime
- C# - 문자열 리스트를 문자열로 변환
- C# - 리스트 복사 (얕은 복사, 깊은 복사)
- C# - 2차원 리스트 선언 및 초기화
- C# - 리스트 선언 및 초기화
- C# - 리스트 길이, 크기 가져오기
- C# - 리스트 합계, 평균 계산
- C# - 리스트 요소 제거 (RemoveAt, RemoveAt, RemoveAll)
- C# - 리스트에서 빈 문자열, null 제거
- C# - 리스트 두개로 분리, n개로 나누기
- C# - 문자열 뒤집기, Reverse()
- C# - 2차원 배열 복사, Clone
- C# - 문자열 배열을 문자열로 변환
- C# - 2차원 배열 선언, 초기화 방법
- C# - 배열 길이, 2차원 배열 길이
- C# - 두개의 배열을 하나로 합치기
- C# - 배열 중복 요소 제거
- C# - 배열에서 특정 요소 제거
- C# - Int 배열 정렬 (오름차순, 내림차순)