C#/C#_기초강의

(C#) 자료 형식 변환(2): 문자열을 숫자로, 숫자를 문자열로 변환하기

코딩ABC 2023. 4. 20. 09:34
반응형

문자열을 숫자로, 숫자를 문자열로 변환하기

 

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 구문으로 처리해야 합니다.

반응형