Java

형변환

성장코딩 2022. 12. 21. 01:38
형변환(캐스팅, casting)이란?
변수 또는 상수의 타입을 다른 타입으로 변환하는 것

1. 형변환을 왜 하는가?

 - 연산을 수행하기 위해서 타입을 일치시켜야 하기 때문이다.

 

2. 형변환 방법

 - (타입)피연산자

 - 괄호( )는 '캐스트 연산자' 또는 '형변환 연산자'라고 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
package test;
 
public class MainClass {
    public static void main(String[] args) {
    
        //형변환 
        double d = 3.14;
        int i = (int)d;
        System.out.println("i = " + i);
        
    }
}
 
cs

 - 결과는 i = 3 (실수형이 정수형으로 형변환할 때 반올림이 아니라 버림)

 

3. 타입 크기의 차이가 있는 경우의 형변환

 1) 큰 타입에서 작은 타입으로의 변환

  - 크기 차이 만큼 값 손실이 발생할 수 있다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package test;
 
public class MainClass {
    public static void main(String[] args) {
    
        //큰 타입에서 작은 타입으로의 변환
        int i = 1234567// int는 4byte, short는 2byte
        short sh;
        sh = (short)i;
        System.out.println("sh = " + sh);
    }
}
 
 
cs

  - 결과는 1234567이 아닌, -10617이라는 엉뚱한 숫자가 나타난다. 

  - 왜냐하면 1234567은 int의 저장 가능 범위에 속하지만, short의 저장 가능 범위는 벗어나기 때문

 

 2) 작은 타입에서 큰 타입으로의 변환

  - 값 손실이 발생하지 않는다.