1. 데이터 형식 변환이란?

  • 정의: 변수를 다른 데이터 형식의 변수로 옮겨 담는 것을 변환이라고 합니다.
  • 변환에는 두 가지 방식이 있습니다:
    1. 암시적 변환: 데이터 손실이 없는 경우 자동으로 수행.
    2. 명시적 변환: 데이터 손실 가능성이 있는 경우 개발자가 명시적으로 수행.

2. 정수 데이터 형식 변환

a. 작은 정수 → 큰 정수
  • 변환 시 문제가 발생하지 않습니다.
  • 예: byte → int
b. 큰 정수 → 작은 정수
  • 데이터가 범위를 초과하면 오버플로우 발생.
  • 예: int → byte 
int a = 256;
byte b = (byte)a; // b = 0 (오버플로우 발생)

c. 부호 있는 정수 → 부호 없는 정수

  • 음수 값을 변환하면 언더플로우가 발생.
  • 예: int → uint
int a = -1;
uint b = (uint)a; // b = 4294967295 (언더플로우)

3. 부동소수점 데이터 형식 변환

a. 부동소수점 → 정수

  • 소수점 이하를 버리고 정수 값만 남습니다. 반올림은 하지 않습니다.
  • 예:
     
double d = 3.9; 
int i = (int)d; // i = 3

b. float ↔ double 변환

  • 부동소수점은 소수를 이진수로 저장하므로 정밀도 손실이 있을 수 있습니다.
  • 예:
float f = 1.123456789f; // 제한된 정밀도 (7자리)
double d = f; // 정밀도가 손상될 수 있음

4. 문자와 숫자 변환

a. 문자 → 숫자

  • Parse() 또는 Convert.ToInt32() 메소드를 사용.
  • 예:
string s = "123"; 
int i = int.Parse(s); // i = 123

b. 숫자 → 문자

  • ToString() 메소드를 사용.
  • 예:
int i = 123; 
string s = i.ToString(); // s = "123"

 


5. 변환의 주의점

  • 정수 변환: 범위 초과 여부 확인 (오버플로우/언더플로우).
  • 부동소수점 변환: 정밀도 손실 가능성 이해.
  • 문자와 숫자 변환: 잘못된 입력 처리 대비 (예외 처리).

+ Recent posts