Menu
Coddy logo textTech

타입 캐스팅 파트 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.03.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) valuestatic_cast<int>(value)는 모두 동일한 결과를 생성하지만, 현대 C++에서는 static_cast<>()가 변환을 명확하게 보여주고 컴파일러에 의해 확인되므로 권장되는 방식입니다.

challenge icon

챌린지

초급

타입 캐스팅을 보여주는 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가 됩니다.

참고: doubleint로 형 변환하면 소수점 이하 부분이 절삭(버림)됩니다. 명확성과 컴파일러 안전성을 위해 현대적 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;
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨