[Java] 220331 데이터 형 변환

SeongEon Kim·2022년 3월 31일
0

JAVA

목록 보기
4/52

지난 게시물에 이어 Java 데이터 관련 헷갈릴 수 있는 부분을 정리해보자.

(예제와 설명은 유튜브 생활코딩의 Java 입문강의를 참조하여 정리하였다.)

  1. 자동 형 변환 (암시적 형 변환)
    double a = 3.0F;
 위의 코드는 double 타입의 변수 a에 float타입의 값을 대입하고 있다 이때 3.0F의 값은 자동으로 doulbe타입으로 형 변환이 일어난다. 
 이것이 가능한 이유는 double 타입이 float타입보다 더 많은 수를 표현할 수 있기 때문이다. 
 (double > float)
 타입을 변경해도 정보의 손실이 일어나지 않을때, 자동 형 변환이 일어난다.

float a = 3.0;

 
 반대로 위의 예제는 오류가 발생한다. 상수 3.0은 상수이지만 double형이다. 이 값을 표현범위가 적은 float에 넣으려고 하기 때문에 오류가 발생하였다. 

 
 ※자동형변환의 원칙 : 표현범위가 좁은 데이터 타입에서 넓은 데이터 나입으로의 변환만 허용된다.
 
 ![](https://media.vlpt.us/images/enoch0403/post/9117832b-9f48-44f4-98c2-127ac037b9cf/image.png)
 
 위의 이미지는 자동 형 변환이 일어나는 규칙을 보여준다.
 byte타입은 short가 될 수 있지만 short는 byte 타입이 될 수 없다.
 long은 float가 될 수 있지만 float은 long이 될 수 없다.
 
 
 2. 명시적 형 변환
 
 자동 형 변환이 적용되지 않는 경우 수동으로 형 변환을 해야 한다.
 이를 명시적 형 변환이라고 한다.
 아래의 코드는 오류가 발생하는데. 자동 형 변환이 이루어지지 않기 때문이다.
 

float a = 100.0;
int b = 100.0F;


위의 코드를 직접 수정하여 오류를 고쳐보면 아래와 같다.

float a = (float)100.0;
int b = (int)100.0F;

 
profile
꿈을 이루는 사람

0개의 댓글