c#

C# 프로그래밍 - 데이터 형식 변환 및 캐스팅(Data Type Convertion)

디지털콘텐츠크리에이터 2023. 9. 4. 23:02

C# 프로그래밍 - 데이터 형식 변환 및 캐스팅(Data Type Convertion)

데이터 형식 변환은 하나의 데이터 형식을 다른 데이터 형식으로 변환하는것을 의미합니다. 아래에서 두가지 데이터 형식 변환 방법(암시적 변환, 명시적 변환)을 설명합니다.

암시적 변환(Implicit Conversion)

데이터 형식을 자동으로 변환하는 방법입니다. 작은 범위의 데이터 형식에서 큰 범위의 데이터 형식으로의 변환이 발생할 때 자동으로 암시적 변환이 수행됩니다. 이러한 변환이 가능한 이유는 데이터의 손실 없이 작은 데이터 형식을 큰 데이터 형식에 저장할 수 있기 때문입니다. 예를들어 작은 정수 형식에서 큰 정수 형식으로의 변환, 실수 형식에서 정수 형식으로의 변환, 파생 클래스에서 기본 클래스로의 변환에 암시적 변환이 사용될수있습니다.

 

암시적 변환 예시

int num = 10;
long bigNum = num; 

 

 

int myInt = 10;
double myDouble = myInt;

 

 

Derived d = new Derived();
Base b = d;

 

 

Giraffe g = new Giraffe();
Animal a = g;

 

 

명시적 변환 (Explicit Conversion)

사용자가 명시적으로 데이터 형식을 변환하는 방법입니다. 범위가 더 작은 데이터 형식으로 변환하거나 데이터 손실이 발생할 수 있는 경우(자동 형변환으로 처리할수없는 경우)에 사용할수있습니다. 예를들어 큰 정수 형식에서 작은 정수 형식으로의 변환, 실수형식에서 정수형식으로의 변환, 기본 클래스 인스턴스를 파생 클래스로의 변환에 명시적 변환이 사용될수있습니다.

 

명시적 변환은 캐스트 연산자 ()를 사용하여 수행할수있습니다(캐스팅, casting) 캐스팅은 괄호안에 데이터 타입을 지정하여 값 앞에 위치시키는것입니다.

 

명시적 변환 예시

double num = 10.5;
int roundedNum = (int)num;    //10

 


double pi = 3.14159;
int approxPi = (int)pi;    //3

 


double x = 1234.9;
int a;
a = (int)x;
System.Console.WriteLine(a);    //1234

 

 

Giraffe g = new Giraffe();
Animal a = g;

Giraffe g2 = (Giraffe)a;

 

 

기타
변환 메서드 (Conversion Methods)

C#에서 제공하는 클래스 및 메서드를 사용하여 데이터 형 변환을 수행할 수 있습니다. 

 

문자열을 정수로 변환
string strNum = "10";
int num = Convert.ToInt32(strNum); 

정수를 문자열로 변환
int num = 10;
string strNum = num.ToString();

 

 


캐스팅 및 형식 변환
https://learn.microsoft.com/ko-kr/dotnet/csharp/programming-guide/types/casting-and-type-conversions
https://learn.microsoft.com/ko-kr/training/modules/csharp-convert-cast/

기존 제공 숫자 변환
https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/builtin-types/numeric-conversions