강제 타입 변환

satic·2025년 3월 18일

강제 타입 변환 (Type Casting)

강제 타입 변환이란 프로그래밍에서 데이터의 타입을 명시적으로 변경하는 과정을 의미합니다. 이는 자동 타입 변환(암시적 변환)과 달리, 개발자가 직접 변환을 지정해야 합니다.


1. 강제 타입 변환의 필요성

  • 서로 다른 데이터 타입을 연산할 때 오류를 방지하기 위해
  • 특정 연산에서 원하는 데이터 타입을 맞추기 위해
  • 입력값을 처리할 때 원하는 데이터 타입으로 변환하기 위해

2. 언어별 강제 타입 변환 방법

1) JavaScript

JavaScript에서는 Number(), String(), Boolean() 등을 활용하여 변환할 수 있습니다.

let num = "123";
let convertedNum = Number(num); // 문자열 → 숫자 변환
console.log(convertedNum); // 123 (숫자 타입)

let boolValue = Boolean(0); // 0은 false로 변환
console.log(boolValue); // false

2) Python

Python에서는 int(), float(), str(), bool() 함수를 사용하여 타입을 변환합니다.

num = "42"
converted_num = int(num)  # 문자열 → 정수 변환
print(converted_num)  # 42

bool_value = bool("")  # 빈 문자열은 False로 변환
print(bool_value)  # False

3) Java

Java에서는 형 변환 연산자 (타입) 를 사용하여 강제 변환할 수 있습니다.

double d = 9.7;
int num = (int) d; // 실수 → 정수 변환 (소수점 절삭)
System.out.println(num); // 9

4) C언어

C언어에서는 (타입)을 사용하여 강제 변환을 수행합니다.

double d = 5.8;
int num = (int)d; // 실수 → 정수 변환 (소수점 절삭)
printf("%d", num); // 5

3. 강제 타입 변환 시 주의할 점

  1. 데이터 손실 가능성

    • 실수를 정수로 변환하면 소수점 이하가 손실됨
    • 문자열을 숫자로 변환할 때 유효한 숫자 형식인지 확인 필요
  2. 런타임 오류 발생 가능

    • Java, C 등 정적 타입 언어에서는 변환이 불가능한 경우 컴파일 오류 발생
    • JavaScript, Python 등 동적 타입 언어에서는 실행 중 오류 발생 가능
console.log(Number("abc")); // NaN (숫자로 변환 불가)
  1. Boolean 변환 시 예상치 못한 결과
    • 0, "", null, undefined, NaNfalse
    • 그 외의 값은 대부분 true

4. 정리

언어강제 타입 변환 방법
JavaScriptNumber(), String(), Boolean()
Pythonint(), float(), str(), bool()
Java(타입) 형 변환 연산자 사용
C(타입) 형 변환 연산자 사용

강제 타입 변환을 사용할 때는 변환이 적절한지, 데이터 손실이 없는지 꼭 확인해야 합니다. 😊


profile
95.06.09

0개의 댓글