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) 작은 타입에서 큰 타입으로의 변환
- 값 손실이 발생하지 않는다.