타입 캐스팅 파트 1
Coddy C++ 여정의 기초 섹션에 포함된 레슨 — 74개 중 14번째.
타입 캐스팅(Type casting)은 값을 한 데이터 타입에서 다른 데이터 타입으로 변환하는 과정입니다.
C++에서는 정수를 double로, double을 정수로 변환하는 등의 작업을 수행할 수 있습니다. 캐스팅에는 두 가지 유형이 있습니다: 암시적(자동) 캐스팅과 명시적(수동) 캐스팅입니다.
예를 들어 Integer to Double:
암시적(자동) 형변환:
int number = 5;
double decimal = number; // 자동으로 5.0이 됩니다
// 계산 시
int x = 7;
double result = x / 2.0; // 결과는 3.5입니다참고: 두 개의 int 값을 나눌 때, C++은 정수 나눗셈을 수행하며 소수점 이하는 버려집니다. 예를 들어, 7 / 2의 결과는 3.5가 아니라 3이 됩니다. 소수점 결과를 얻으려면 적어도 하나의 피연산자가 double이어야 합니다 (예: 7 / 2.0은 3.5를 반환합니다).
명시적 (수동) 형변환 Double to Integer:
double decimal = 9.7;
int number = (int) decimal; // 9가 됨 (소수점 이하는 버려짐)
// 계산 시
double price = 19.99;
int roundedPrice = (int) price; // 19가 됨모던 C++ 권장 스타일: C 스타일 캐스트인 (int) decimal 대신, 더 안전하고 의도를 명확하게 드러내는 static_cast<>()를 사용하는 것이 좋습니다:
double decimal = 9.7;
int number = static_cast<int>(decimal); // 9가 됨 (소수점 이하는 버려짐)
double price = 19.99;
int roundedPrice = static_cast<int>(price); // 19가 됨참고: 여기서 (int) value와 static_cast<int>(value)는 모두 동일한 결과를 생성하지만, 현대 C++에서는 static_cast<>()가 변환을 명확하게 보여주고 컴파일러에 의해 확인되므로 권장되는 방식입니다.
챌린지
초급타입 캐스팅을 보여주는 C++ 프로그램을 작성하세요. 다음을 수행하세요:
price 변수를 int로 캐스팅하고 그 결과를 intPrice라는 이름의 새 변수에 저장하세요.
치트 시트
형 변환(Type casting)은 값을 한 데이터 타입에서 다른 데이터 타입으로 변환하는 것을 말합니다.
암시적(자동) 형 변환 — 자동으로 발생합니다:
int number = 5;
double decimal = number; // 자동으로 5.0이 됩니다.
int x = 7;
double result = x / 2.0; // 결과는 3.5입니다. (int/int는 소수점을 버립니다)명시적(수동) 형 변환 — C 스타일 및 현대적인 static_cast:
double price = 19.99;
int a = (int) price; // C 스타일: 19가 됩니다.
int b = static_cast<int>(price); // 현대적 C++ 권장 방식: 19가 됩니다.참고: double을 int로 형 변환하면 소수점 이하 부분이 절삭(버림)됩니다. 명확성과 컴파일러 안전성을 위해 현대적 C++에서는 static_cast<>()를 사용하는 것이 권장됩니다.
직접 해보기
#include <iostream>
int main() {
// 변수 선언 및 초기화
double price = 99.99;
int intPrice = ?; // double에서 int로 명시적 형변환
// 값 출력
std::cout << "Price: " << price << std::endl;
std::cout << "Int Price: " << intPrice << std::endl;
return 0;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.