<aside> 💡
정수와 실수는 컴퓨터 내부에서 표현되는 방식이 전혀 다르다. 이 두 개를 더한다고 할 때 그대로 연산을 수행할 수 없고 하나의 자료형으로 통일한 후 연산을 해야 한다. 이 때 형 변환이 이루어진다.
형 변환은 크게 묵시적 형 변환(자동 형 변환)과 명시적 형 변환(강제 형 변환) 두가지로 구별해서 생각할 수 있다.
</aside>
정수 실수
byte → short → int → long → float → double
***char →***
위 표에서 반대 방향으로 형 변환을 할 시에는 강제로 변환 해야 한다.
long형이 8바이트이고 float형이 4바이트인데 형 변환이 되는 이유는 기본적으로 실수가 정수보다 표현 범위가 더 넓고 정밀하기 때문이다.
화살표 방향으로 형 변환 할 때는 자료 손실이 없지만, 반대 방향일 때는 자료 손실이 발생 할 수 있다.
byte bNum = 10;
int iNum = bNum; // byte형 변수 bNum 값을 int형 변수 iNum에 대입함
int iNum2 = 20;
float fNum = iNum2;
int iNUM = 20;
float fNum = iNum;
double dNum;
dNum = fNum + iNum;
double형 <-- float형