Language/C#
C# 공부정리 - 데이터 3 (형 변환)
Tarel
2022. 12. 29. 20:49
데이터 종류에 대해 알았다면
이제는 데이터의 형태를 바꿔보자
정수를 실수로, 실수를 정수로 바꾸거나 문자열을 숫자로 바꾸는 등의 변환을 알아보자
정수형 간의 변환
int를 double로 변환
int a = 100;
double b = (double)a;
double c = a;
int a를 선언하고 그것을 double로 변환한 것이다.
그런데 int는 double보다 포함하는 범위가 작다.
때문에 바로 아랫 줄 처럼 double을 생략해도 된다.
그렇다면, 큰 수를 작은 데이터형에 담으면 어떻게 될까?
double a = 12345678912;
int b = (int)a;
큰 수를 작은 자료형에 담을 때는 보시다시피 (int)를 써 주어야 한다.
단, 지금 a 의 값은 int의 최대값을 넘는 숫자를 가지고 있기 때문에 오버 플로우가 발생하고
b를 출력해보면 -2147483648 이라는 이상한 숫자가 나오는 것을 알 수 있다.
ToString()
숫자를 문자열로 바꾸는 명령이다.
int a = 100;
float b = 3.141593f;
decimal c = 3.1415926535897932384626433832m;
string strA = a.ToString();
string strB = b.ToString();
string strC = c.ToString();
이렇게 ToString을 사용해주면 숫자가 문자열로 바뀐다.
만약 ToString을 사용하지 않으면 에러가 난다.
Parse()
문자열을 숫자로 바꾸는 명령이다.
string strA = "100";
string strB = "3.141593";
string strC = "3.1415926535897932384626433832";
int parseA = int.Parse(strA);
float parseB = float.Parse(strB);
decimal parseC = decimal.Parse(strC);
만약 문자열에 숫자가 아닌 문자를 넣고 변환할 경우, 에러가 발생한다.
Convert
convert도 parse와 비슷하나 사용방법이 조금 다르다
int a = 100;
float b = 3.141593f;
decimal c = 3.1415926535897932384626433832m;
string strA = a.ToString();
string strB = b.ToString();
string strC = c.ToString();
int parseA = int.Parse(strA);
float parseB = float.Parse(strB);
decimal parseC = decimal.Parse(strC);
int convertA = Convert.ToInt32(strA);
float convertB = Convert.ToSingle(strB);
decimal convertC = Convert.ToDecimal(strC);