형 변환(type conversion, type casting, type coercion, type juggling)은 double 데이터를 Int로 변환하는 것과 같이 자료형을 다른 형태로 변경하는 것이다. 컴파일러가 자동으로 변환해주는 암시적 형 변환과 직접 변경해주는 명시적 형 변환 두 가지로 나뉘어진다.
[출처] 위키백과 - 형 변환
[1] 암시적 형변환
컴파일러가 자동으로 변환하는 형변환이다. 복수 데이터 형태가 사용될 때 상위 데이터 형태로 자동 변환되는 케이스가 이에 속한다.
아래의 코드가 이에 속한다. int 데이터와 double 데이터의 계산이 수행될 경우, 직접 명시 하지 않았으나 상위 데이터 형태에 해당되는 double 데이터로 자동 형변환되어 계산된다.
예) int a + double b → double c
[2] 명시적 형변환
명시적 형변환은 사용자가 직접 데이터 타입을 변환하는 형변환이다. 하위 데이터 형태로도 변환이 가능하나, 표현할 수 있는 범위를 벗어나는 경우 데이터 일부 손실이 이루어질 수 있다.
예) double a = 1.42 → (int) a = 1 : int 형으로 변환되었으나 소수점 값 0.42 손실
명시적 형변환을 수행하는 방법에는 아래와 같은 다양한 함수가 존재한다.
▶ char.c_str()
- Char to String
▶ stoi(string)
- String to Int
- 앞의 부호까지 함께 숫자로 변환해준다.
▶ stof(string)
- String to Flot
▶ stol(string)
- String to Long
▶ stod(string)
- String to Double
▶ stoll(string)
- String to Long long int
* 관련 문제
- [프로그래머스] 정수 부분
- [프로그래머스] 문자열을 정수로 바꾸기
- [백준] 25305번: 커트라인
'Study > C_C++' 카테고리의 다른 글
벡터 (vector) (0) | 2023.06.17 |
---|---|
연산자 (0) | 2023.06.15 |
표준 템플릿 라이브러리 (STL) (0) | 2023.06.13 |
VS Code (with Windows) (0) | 2018.07.29 |
댓글