TIL(24-03-19) - 형변환(C#)

임재훈·2024년 3월 19일

C#

목록 보기
1/11

형변환

자료의 형태를 변환할 때 사용

  • 숫자를 다른 형태의 숫자로 변환
  • 다른 자료형문자로 변환
  • 문자다른 자료형으로 변환

1. 숫자 -> 숫자

int -> float

int iTen = 10;
float fTen = (float)iTen; //10.0f

float -> int

float fFive = 5.5f;
int iFive = (int)fFive; // 5

데이터의 손실이 없는 경우라면 앞에 괄호로 형태를 명시하지 않더라도 형변환(Casting)이 가능하다.

  • float 10.5f를 int 10으로 바꾸려면 0.5의 값이 사라지기 때문에 명시해야 한다
  • int 10을 float 10.0f로 바꾸려면 누락될 값이 없으므로 그냥 사용해도 된다.
int iTen = 10;
float fTen = iTen; // 10.0f

2. 다른 자료형 -> 문자

간단하게 뒤에 .ToString()을 붙이면 변환할 수 있다.

int i = 10;
float f = 0.5f;
bool b = true;

string strI = i.ToString(); // "10"
string strF = f.ToString(); // "0.5"
string strB = b.ToString(); // "true"

3. 문자 -> 다른 자료형

  • Convert 클래스 이용
  • Parse() 함수 이용
  • TryParse() 함수

1) Convert 클래스

string iStr = "10";
int i;
i = Convert.ToInt32(iStr); // i : 10

string bStr = "true";
bool b;
b = Convert.ToBoolean(bStr); // b : true
  • 형변환 리스트
    형변환 리스트

2) Parse() 함수

string iStr = "10";
int i;
i = int.Parse(iStr); // i : 10

string bStr = "true";
bool b;
b = bool.Parse(bStr); // b : true

에러 발생
Convert와 Parse()는 반환할 수 없는 값일 때 문제가 발생

string iStr = "10test";
int i;
i= Convert.ToInt32(iStr); // i : ??? 에러 발생
string bStr = "test";
bool b;
b = bool.Parse(bStr); // b : ???? 에러 발생

이런 에러를 방지하기 위해 TryParse() 함수를 사용하면 좋다.

3) TryParse() 함수

TryParse() 함수는 반환값으로 반환한 값을 받지 않는다.
TryParse() 함수의 반환값은 bool형으로 반환의 성공 여부를 알려준다.

string iStr = "10";
int i;
bool isSuccess;
isSuccess = int.TryParse(iStr, out i); // isSuccess : true

string bStr = "test";
bool b;
bool isSuccess;
isSuccess = int.TryParse(bStr, out b); // isSuccess : false

+반환을 성공하면 out 뒤의 변수에 반환한 값을 저장하고 실패하면 0을 반환한다.

더 알아보기

  • Convert와 Parse()의 차이
    이 둘의 차이점은 null 값을 변환시킬 때 0을 반환을 하냐, 예외 처리를 하냐 차이다.
string iStr = null;

int iConvert = Convert.ToInt32(iStr); // 0

int iParse = int.Parse(iStr); // 예외 처리
profile
초심을 잃지 말자!

0개의 댓글