ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 형 변환
    Language 2022. 3. 7. 20:40

    1. 자동 형 변환

     

    int형 정수와 double형 실수를 더하고 싶다면 형을 변환시켜야 한다.

    자료형이 다른 두 값을 대상으로는 덧셈을 수행할 수 없기 때문이다.

    그러나 덧셈이 잘 수행되었다.

    위에서 자료형이 다름에도 연산이 정상적으로 된 이유는 num1에 저장된 값을 long으로 변환하여 메모리에 임시 저장 후 num2와의 연산을 수행하는 '자동 형 변환'이 일어나기 때문이다.

     

    이에는 규칙이 있다.

    1) 자료형의 크기가 큰 방향으로 형 변환이 일어난다.

    2) 자료형의 크기에 관계없이 정수 자료형보다 실수 자료형이 우선한다.

    > 정수형을 실수형으로 변환하면 오차는 존재하겠지만 데이터 손실은 일어나지 않음

     

    byte > short > int > long > float > double 

    문자 자료형은 int로 변환되어 위에 끼어 들어갈 수 있다.

     

     

    2. 명시적 형 변환

     

    자동 형 변환이 진행되지 않는 상황에서도 필요하다면 이를 통해 형 변환을 할 수 있다.

     

    double > int 형 변환하여 새로운 변수에 저장

    다만, 데이터의 크기가 큰 것을 작은 크기로 변환할 때에는 상위 byte가 잘려나가고, 알 수 없는 값으로 변환되므로 주의를 요한다.

     

    랜덤값으로 변환되었다.

     

    명시적 형 변환이 필요한 경우는 다음 예와 같은 상황이다.

     

    에러 발생

    컴퓨터는 덧셈을 위해 num1과 num2에 저장된 값을 int로 변환 후 계산한다.

    그리고 그 값을 num3에 저장하려고 했는데, num3은 short고 결과값은 int이기에 오류가 발생하는 것이다.

    이 때 다음과 같은 명시적 형 변환을 통해 오류를 해결할 수 있다.

     

    결과값

     

    'Language' 카테고리의 다른 글

    [Java] 단항연산자  (0) 2022.03.07
    [Java] 이항연산자, SCE  (0) 2022.03.07
    [Java] 상수(Constants)  (0) 2022.03.07
    [Java] 기본 자료형  (0) 2022.03.07
    [Java] 변수와 자료형  (0) 2022.03.07
Designed by Tistory.