


값의 표현범위가 큰 자료형의 기준에 맞춤.

byte a = 6;
byte b = 7;
byte sum = a + b;
error: incompatible types: possible lossy conversion from int to byte byte sum = a + b;

데이터의 손실이 발생할 수 있다는 것을 인지하고 형 변환을 한다고 명시.

long a = 100000;
// 8 byte로 저장된 값을 4 byte로 변환
// 다만 100000은 4 byte로 표현이 가능하기 때문에 손실이 없음
int b = (int) a;
System.out.println(b); //10000
// 4 byte로 저장된 값을 2 byte로 변환
// 다만 100000은 2 byte로 표현할 수 없기 때문에 데이터 손실 및 변질
short c = (short) b;
System.out.println(c); //-31072 (변질)
float a = 32.123F;
// 단정도(4 byte) 부동소수점을 정수로 변환
int b = (int)a;
System.out.println(b) //32 (정수부만 추출)
float a = 10000000000.0F;
// 단정도(4 byte) 부동소수점을 정수로 변환
int b = (int)a;
System.out.println(b) //2147483647 (변질)
-> int로 표현할 수 있는 최대값을 출력함.