안녕하세요! 오늘은 자동형 캐스팅과 수동형 캐스팅이 데이터 타입을 변환하기위해 사용되는건 맞는데 더 자세한 차이를 알아보도록 할께요!
> #자동 형변환?
- 변수의 데이터 타입이 더 큰 데이터타입으로 자동으로 변환되는것!
작은 데이터 타입 변수 -> 더 큰 데이터 타입 변수 (자동으로 변환)
ex)int n1 = 10; float n2 = n1;여기서 보면 n1 변수는 정수(int) 타입이고 n2는 실수형(float) 타입인걸 알 수 있습니다!
정수형은 ...1,2,3,... 을 나타내고, 실수는 ...1.1, 1.2, 1.3...등을 나타낼 수 있는데 감이 잘 안 잡히시죠?
그러면 여기서 데이터 타입이 크고 작다가 뭘 의미할까요??
좀 더 쉽게 문제를 통해서 알아봐요!
Q1: 정수형은 1과 3사이에 몇 개가 있나요??
1,2,3 3개가 있어요!
Q2: 실수형은 1과 3사이에 몇 개가 있나요??
1.1xxxxx~3.0 무수히 많은 수가 있어요!
이해가 좀 되시나요? 즉 정수형으로 표현할 수 있는 범위보다 실수형으로 표현하는 범위가 더 크기 때문에 데이터 타입은 실수형이 더 크다고 할 수 있어요!! 이러한 경우에 자바는 자동으로 형변환을 해주게 됩니다!!
#수동 형변환?
사용법:
(DataType) 변수;변수의 데이터타입을 강제로 변환시키는 것!
(A타입) -> (B타입) 으로 강제로 변환!
ex)double num1 = 3.14; int num2 = (int) num1; // 수동형 캐스팅예시를 보시면 double형은 int형보다 더 큰 데이터 타입이기때문에 자동변환이 되지않아요! 그러면 어떻게 바꿀까? 바로 강제로 (int)형으로 바꿔주는 방법이 있어요!
이렇게 되면 num2는 3.14에서 뒤에 소수점 자리를 떼버리고 3이라는 결과가 출력됩니다!