티스토리 뷰

자동 형변환

자동 형변환은 표현 범위가 좁은 데이터 타입에서 넓은 데이터 타입으로의 변환만 허용된다.

double a = 10.0F; // (가능)

double형보다 표현 범위가 좁은 float형을 담으므로, 자동 형변환이 일어난다.

float a = 3.0; // (불가능)

float형보다 표현 범위가 넓은 double형을 담으려고 하면, 오류가 발생한다.

cf. 자바에서는 기본적으로 상수값도 데이터 타입을 가지고 있다. 실수 float형을 표현하고 싶다면 숫자 뒤에 F를 명시해줘야하며, F를 명시하지 않는 경우 기본 데이터 타입은 double이 된다.

 

자동 형변환이 일어날 수 있는 규칙은 다음과 같다.

byte -> short -> int -> long -> float -> double

             char ->

 


 

명시적 형변환

자동 형변환이 일어나지 않는 경우 명시적으로 형변환을 해주어야 한다.

float a = (float) 10.0; // double형인 10.0을 float형으로 명시적 형변환
int b = (int) 10.0F; // float형인 10.0F를 int형으로 명시적 형변환

위와 같이 형변환하고자 하는 값 앞에 괄호와 함께 원하는 데이터 타입을 지정해주면 된다.

 

728x90
댓글