자료형 변환
[ 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형으로 바뀌어 저장되진 않음)
[ 대입 변환 ]
대입 변환 : 어떤 데이터형의 값이 다른 데이터형의 변수에 대입될 때, 대입될 변수의 데이터형으로 자동 변환
- 확장 변환 : (예시) float dollar = won/rate;
<=> 만약 won/rate = 36이면 float로 형 변환 (36.0) 후 dollar 변수에 값을 대입함 - 축소 변환 : (예시) 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 값을 대입
'C# > C# 문법' 카테고리의 다른 글
파일 입출력 (0) | 2021.06.15 |
---|---|
예외 처리문 (0) | 2021.06.15 |
배열 (Array) (0) | 2021.06.15 |
델리게이트, 이벤트 (0) | 2021.06.15 |
인터페이스 (Interface) (0) | 2021.06.14 |