형변환은 데이터 타입을 바꾸는 것이다.
int 200은 컴퓨터 시점에서 00000000 00000000 00000000 11001000
float 200.0은 컴퓨터 시점에서 01000011 01001000 00000000 00000000이다.
-사람이 봤을 때 같은 수지만 컴퓨터는 두 숫자를 완전 다른 데이터로 인식한다
자동형변환(암시적형변환)
자바는 작은 데이터 타입에서 큰 데이터 타입으로 형변환하는 경우 자동으로 변형해주도록 세팅 되어있다.
하지만 큰 데이터 타입에서 작은 데이터 타입으로 변형은 데이터 손실이 될 수 있어서 자동으로 변형해주지 않는다.
int 타입인 a와 float 타입인 b를 더하기 위해선 같은 타입으로 통일시켜야하는데
실수인 float 타입이 정수인 int 보다 크기 때문에 자동으로 변형이된다.
3.0F + 1.0F = 4.0F
double 타입인 c는 float 타입인 4.0F 보다 크기 때문에 4.0은 double 타입으로 자동형변환된다.
c = 4.0D
*실수는 소수점 뒤의 수까지 표시할 수 있지만 정수는 표현할 수 없기 때문에 실수가 정수보다 크다.
4 --> 4.0 - 잃어버리는 데이터 없음 4.2 --> 4 - 0.2 손실
명시적형변환
float a = (float)2.0
double형인 2.0은 float 보다 큰 데이터 타입이지만 (float)를 붙여 float로 변환할 수 있다.
int b = (double)3.8
double형인 3.8은 int 보다 큰 데이터 타입이지만 (double)을 붙여 int로 변환할 수 있다.
b = 3 (0.8 데이터 손실)