자료형 변환

2021. 6. 15. 22:32
728x90

 [ Data type 변환하는 함수 ] 

데이터 변환 1 : Convert.To타입() 

//예시

Convert.ToInt32(); // int형

Convert.ToSingle() // float형

 

데이터 변환 2 : 타입.Parse(___)

//예시

Int32.Parse( 문자열입력 ) // int형

float.Parse()  // float형

 

 

 [ 자동 형 변환 ] 

자동 형 변환 : 서로 다른 형의 혼합 연산을 하면 필요한 기억장소의 크기가 작은 쪽에서 큰 쪽으로 자동 확장 변환

char(1byte) < short(2) < int(4) <= long(4) <= float(4) < double(8) <= long double(8)

예시)   int / float = float 

→ 변수 값 자체에는 변화가 없지만, 계산할 때만 잠깐 변환해서 사용할 뿐 (수식 계산 중에 float형으로 계산만 하는 것 뿐, int형이 float형으로 바뀌어 저장되진 않음)

 

 [ 대입 변환 ] 

대입 변환 : 어떤 데이터형의 값이 다른 데이터형의 변수에 대입될 때, 대입될 변수의 데이터형으로 자동 변환

  1. 확장 변환 :  (예시)   float dollar = won/rate;
                     <=> 만약 won/rate = 36이면 float로 형 변환 (36.0) 후 dollar 변수에 값을 대입함
  2. 축소 변환 : (예시)   int won = dollar * rate;
                     <=> dollar * rate 계산 시, 소숫점 이하 값은 버리고 정수값(int)만 won 변수에 대입함
    → 축소 변환은 소숫점 이하 값을 버리기 때문에 정보를 손실시킴
    → "소숫점 이하 값은 버리고" 라는 말은 반올림이 아니라 아예 정수부만 가져온다는 의미 (truncate)

 

 [ 수동 형 변환 ] 

수동 형 변환 : 명시적 형 변환 (타입 캐스팅)

사용하는 형식은 아래와 같다.

(자료형) 변수 (또는 수식)

 

→ 캐스트 연산자는 곱셈, 나눗셈 연산자보다 우선순위가 높음

 

예시1)   dollar = (float) won/rate;  

→ 순서 : 1. 캐스트가 won에 먼저 적용되어서 won이 float형으로 변환됨.
            2. 그 다음, rate가 산술 학장 변환을 통해 float형으로 변환됨
            3. 나눗셈 연산자로 float / float 를 수행하여 dollar 변수에 float값 저장.

예시2)   won = (int) (dollar * rate);

→ 순서 : 1. dollar*rate 계산하여 float형 값을 반환
            2. 캐스트가 이 값을 int형으로 변환
            3. 대입(축소)변환을 통해 소숫점 아래의 값을 전부 버린 뒤, won 변수에 최종 int 값을 대입

728x90

'C# > C# 문법' 카테고리의 다른 글

파일 입출력  (0) 2021.06.15
예외 처리문  (0) 2021.06.15
배열 (Array)  (0) 2021.06.15
델리게이트, 이벤트  (0) 2021.06.15
인터페이스 (Interface)  (0) 2021.06.14

BELATED ARTICLES

more