[즐거운 자바] 타입의 변환

묵시적 타입 변환

= 자동 타입 변환 = implicit conversion

실수형 타입의 변수에 정수 값이 자연스럽게 저장되는 것
하지만 정수타입에는 실수를 넣을 수 없다.

double d1=50; //int 타입
double d2=500L; // Long 타입
// 이 두 개 모두 가능한 것은 묵시적 타입 변환 때문이다

명시적 타입 변환

= 강제 타입 변환 = explicit conversion

int i1 = (int) 50.1;
// 소숫점이 잘린다. 반올림이 아니다

정리

묵시적 타입 변환과 명시적 타입 변환에서 같이 적용되는 개념은 “크기가 큰 타입은 작은 타입을 저장할 수 있다”는 점이다.
long(8) > int(4) > short(2) > byte(1)

int를 long에 담으면 넘칠 일이 없지만, long을 byte에 넣으면 넘치게 된다(=오버플로우).

자바에서 강제 형변환시 주의할 점

정밀도 손실

: 정수 타입을 실수 타입으로 변환 할 때 생긴다

정수 -> 실수 -> 정수 로 타입변환을 하게 되면
비트수는 같지만 실수는 부동소수점 부분(=가수부)를 위한 공간이 존재하기 떄문에 수가 짤리게 된다.

Categories:

Updated:

Leave a comment