C#문법

[C#문법] Part3 형변환(type conversion)

BlackWolfDev 2023. 1. 9. 21:38

[ 개요 ]

해당 자료형을 원하는 자료형으로 변환할 수 있는 방법에 대해 알아보자.


[ 개념 ]

형변환은 원하는 데이터 타입으로 변환시켜주는 것

이전 시간에 사용자의 입력을 받으면 문자열 형태로 값이 들어오게 된다.

만약에 우리가 계산기를 구현한다고 하면 입력된 값이 문자열이 되므로 숫자로서의 계산이 안된다.

그럼 문자열에서 숫자형으로 자료형을 바꿔줘야지 계산이 가능할 것이다.

그 외에도 프로그램을 구현하면서 형변환을 해야 하는 경우가 자주 있으므로 이번 시간에는 형변환하는 방법에 대해서 알아보자.


[ Convert ]

먼저 Convert라는 클래스를 사용하여 형변환하는 방법이 있다.

종류에는 Convert.ToChar(), Convert.ToInt32(), Convert.ToDouble(), Convert.ToBoolean() 등이 있다.

공통적으로 Convert.ToXXXX()로 되어있는 것을 확인할 수 있는데 XXXX에 자신이 바꾸고자 하는 자료형을 써주면 된다.

static void Main(string[] args)
 {
    Console.Write("입력: ");
    
    string str = Console.ReadLine(); //사용자입력
    int num = Convert.ToInt32(str); //string -> int 로 형변환
    int sum = num + 1;  // (입력한 값) + 1 이라는 의미
    
    Console.WriteLine("출력: " +sum);
 }

콘솔결과값

사용법은 괄호 ‘( )’ 안에 해당 변수나 값을 넣어주면 된다.

1을 입력하면 이 값이 문자열로 들어가는데 이를 Conver.ToInt32()이라는 함수를 통해 int형으로 형변환이 일어나고 이 값에 1을 더하여 출력하였다.

이를 통해 정수형으로의 형변환이 되고 여기에 숫자로 계산할 수 있음을 알 수 있다.

참고로 Conver.ToInt32()을 보면 숫자 32이라고 붙어있는데 이는 32bit 크기를 사용하겠다는 의미이다. Conver.ToInt16(), Conver.ToInt64()도 존재를 하며 주로 32bit가 기본이라 이를 제일 많이 쓴다.


[ Parse ]

두 번째 방법은 Parse()라는 함수를 사용해서 형변환을 할 수 있다.

int.Parse(), double.Parse(), char.Parse() 등의 종류가 있다.

보시다시피 int형으로 형변환하고 싶으면 int.Parse()처럼 앞에 int가 붙은 함수를 사용하면 된다.

콘솔결과값

위에서 봤던 코드가 크게 다를 바가 없다.

Convert.ToInt32() 대신 int.Parse()를 사용하면 된다.


[ ToString ]

Tostring() 함수는 문자열로 바꿔주는 함수이다.

static void Main(string[] args)
{
    int num = 10;
    string str = num.ToString();
}

위의 코드와 같이 변수.ToString() 이런 식으로 사용하면 해당 변수를 string형으로 바꾸어준다.


[ 캐스팅연산자 ]

위의 방법들이 복잡하고 어렵다고 느낄 수 있다.

그러나 캐스팅연산자를 사용하면 더 간단한 방식으로 형변환을 할 수 있다.

static void Main(string[] args)
{
    int intNum = 10;
    double doubleNum = 10.0f;

    double doubleTmp = (double)intNum;
    int intTmp = (int)doubleNum;
 }

자신이 원하는 자료형을 단지 괄호() 안에 명시해 주기만 하면 된다.

int형 변수를 double형으로 바꾸고 싶다면 변수 앞에 (double)을 앞에 붙이면 되고

double형 변수를 int형으로 바꾸고 싶다면 변수 앞에 (int)를 앞에 붙이면 된다.

, 캐스팅 연산자는 문자열을 대상으로 사용할 수 없다.

728x90
반응형