JAVA

자바 형변환 — 다른 그릇에 옮겨 담기

JungWooGyun
#자바#JAVA#형변환#캐스팅

화면 가득한 컬러 코드

이미지 출처: Pexels · Pexels License

지난 편에서 값마다 담는 상자(자료형)가 다르다고 했습니다. 그럼 다른 상자로 값을 옮겨 담고 싶을 땐 어떻게 할까요? 그게 오늘의 주제, 형변환입니다.

형변환이 뭔가요?

형변환은 값을 다른 자료형으로 바꿔 담는 것입니다.

쉽게 — 컵의 물을 대야에 붓는 건 쉽습니다(넘칠 일 없음). 반대로 대야 물을 컵에 부으면 넘칩니다. 형변환도 작은 그릇 → 큰 그릇은 그냥 되고, 큰 그릇 → 작은 그릇은 조심해서 부어야 합니다.

형변환: 작은→큰은 자동, 큰→작은은 (int)로 지정하되 소수점 잘림

자동 형변환 (작은 → 큰, 그냥 됨)

정수를 소수 상자에 담으면 자바가 알아서 바꿔 줍니다.

int a = 10;
double b = a;      // int → double 자동
System.out.println(b);   // 10.0

작은 그릇(int)의 값을 큰 그릇(double)에 부으면 넘칠 일이 없으니 자동입니다.

강제 형변환 (큰 → 작은, 직접 지정)

반대로 소수를 정수 상자에 담으려면, **"내가 책임지고 옮긴다"**고 직접 표시해야 합니다. 앞에 (int)를 붙입니다.

double b = 3.9;
int a = (int) b;   // 강제 변환
System.out.println(a);   // 3  (소수점 버림!)

⚠️ 단골 함정 — 큰 그릇 → 작은 그릇은 소수점 아래가 잘립니다. (int) 3.9는 반올림한 4가 아니라 3입니다. 넘치는 물을 버리는 셈입니다.

숫자 ↔ 문자열 (실전에서 많이 씀)

입력은 보통 글자(문자열)로 들어오니, 계산하려면 숫자로 바꿔야 합니다.

String s = "25";
int n = Integer.parseInt(s);   // 문자열 → 정수
System.out.println(n + 5);     // 30

int age = 15;
String t = String.valueOf(age);   // 정수 → 문자열
System.out.println(t + "살");      // 15살

함정 — "25" + 5는 계산이 아니라 글자 붙이기"255"가 됩니다. 숫자 계산을 하려면 먼저 parseInt로 숫자로 바꿔야 합니다.

한 장 정리

상황방법주의
작은 → 큰(int→double)자동그냥 됨
큰 → 작은(double→int)(int) 강제소수점 잘림
문자열 → 정수Integer.parseInt숫자만 들어 있어야
정수 → 문자열String.valueOf+는 글자 붙이기

이것만 기억하면 됩니다. 작은 그릇→큰 그릇은 자동, 큰 그릇→작은 그릇은 (int)로 직접 옮기되 소수점이 잘립니다. 글자 "25"parseInt로 바꿔야 숫자로 계산됩니다.

미니 퀴즈

개념을 제대로 잡았는지 직접 풀어 봅니다. 정답은 눌러야 나옵니다.

미니 퀴즈

OX 2문제 + 4지선다 3문제


포켓코딩(JAVA1) 3편 · 예제 출처: 강사 개인 GitHub 저장소. 다음 편: 입력받기 — Scanner로 대화하기.

JungWooGyun

IT 지식을 정리하는 개발자

관련 글