문자열을 숫자로, 숫자를 문자열로 변환하기
Double 형식을 int로 변환하기 위해서는 아래와 같은 형식 변환을 합니다.
| double a = 123.0; int b = (int) a;  | 
string 형식은 위와 같은 캐스팅으로 변환할 수 없습니다.
| string a = “123”; int b = (int)a;  | 

숫자 형식을 문자열(string) 형식으로 변환하기
숫자 형식뿐만 아니라 거의 모든 형식을 문자열로 변환할 수 있습니다.
1. ToString() 메서드를 이용해서 모든 형식을 문자열로 변환할 수 있습니다.
|             int a = 123; double b = 123.456; DateTime now = DateTime.Now; Console.WriteLine(a.ToString()); Console.WriteLine(b.ToString()); Console.WriteLine(now.ToString());  | 
2. 문자열과 숫자를 더하기 연자자(+)로 결합할 수 있습니다.
| int a = 100; string s = "a=" + a; // int 형식 a가 자동으로 string으로 변환되서 문자열이 결합됩니다. // 결과: a=100  | 
위 코드를 활용하면 다음과 같이 하여도 숫자가문자열로 변환됩니다.
| int a=100; string s = a + “”;  | 
3. String.Format() 메서드를 이용해서 다양한 형식으로 변환할 수 있습니다.
여기서는 간단한 예를 보이도록 하겠습니다.
| int a = 100; double b = 3.14; string s = String.Format("{0}, {1}", a, b); // s="100, 3.14"  | 
기타 다양한 방법이 더 있습니다.
문자열(string)을 숫자로 변환하기
문자열을 숫자 형식으로 변환하는 방법에는 몇 가지가 있습니다.
1. Parse 메서드
| int.Parse(string) | String을 int 형식으로 변환합니다. | 
| long.Parse(string) | String을 long 형식으로 변환합니다. | 
| float.Parse(string) | String을 float 형식으로 변환합니다. | 
| double.Parse(string) | String을 double 형식으로 변환합니다. | 
| … | … | 
2. Convert 클래스를 이용해서 변환하기
|         static void Main(string[] args) { string a = "123"; string b = "123.456"; int aa = Convert.ToInt32(a); double bb = Convert.ToDouble(b); }  | 
Convert 클래스는 아래와 같은 다양한 메서드를 사용할 수 있습니다.
| ToInit16() ToInt32() ToInt64() ToSing() ToDouble() ToChar() ToByte() ToDateTime() ..  | 
3. TryParse() 메서드를 이용해서 변환하기
TryParse 메서드는 Parse 메서드와는 다르게 반환값이 bool 형식으로 변환에 성공하면 true, 변환에 실패하면 false를 반환합니다.
변환된 결과는 out 키워드로 설정된 result에 저장됩니다.
| bool intTry.Parse(string s, int out result); | 
변환에 실패할 경우에 if 구문을 이용해서 처리할 수 있습니다.
|        static void Main(string[] args) { string s = "123"; int a; if (!int.TryParse(s, out a)) a = 0; Console.WriteLine(a); }  | 
int.Parse와 int.TryParse를 이용해서 변환에 실패한 경우의 예를 들어봤습니다.
|         static void Main(string[] args) { string s = "aa123"; int a; if (!int.TryParse(s, out a)) a = 0; Console.WriteLine(a); } (Output) 0  | 
|         static void Main(string[] args) { string s = "aa123"; int a; a = int.Parse(s); Console.WriteLine(a); }  | 

| Unhandled exception. System.FormatException: Input string was not in a correct format. at System.Number.ThrowOverflowOrFormatException(ParsingStatus status, TypeCode type) at System.Int32.Parse(String s) at ConsoleApp1.Program.Main(String[] args) in C:\work\ConsoleApp1\ConsoleApp1\Program.cs:line 11  | 
int.Parse는 변환에 실패하면 예외(Exception)이 발생합니다. If 구분으로는 처리할 수 없고 try 구문으로 처리해야 합니다.
'C# > C#_기초강의' 카테고리의 다른 글
| (C#) 연산자: 산술연산자 (1) | 2023.04.21 | 
|---|---|
| (C#) 자료형: enum 열거형 (0) | 2023.04.21 | 
| (C#) 자료 형식 변환(1) type conversion (1) | 2023.04.20 | 
| (C#) 자료형: object, 박싱과 언박싱 (0) | 2023.04.20 | 
| (C#) 자료형: 암시적 형식 지역 변수 선언: var (0) | 2023.04.20 |