형 변환 (Casting)

Dec 13, 2023
 형 변환 (Casting)
 
하나의 자료형을 다른 자료형으로 변환하는 것
 

1. 업 캐스팅 (자동 형변환)

 
컴퓨터가 산술적인 연산을 하기 위해 타입을 통일함.
통일할 때 범위가 넓은 타입으로 변환한다.
 
public static void main(String[] args) { int n1 = 1; double d1 ; d1 = n1; System.out.println(d1); }
 
notion image
 
정수 n1 =1 값을 실수형 d1 에 대입하면 1.0의 값이 출력된다.
 
public static void main(String[] args) { int n1 = 1; double d1 = 1.5; System.out.println(d1 + n1); }
notion image
 
정수 n1 과 실수 d1 를 더하면 실수값인 2.5가 출력된다.
 
public static void main(String[] args) { System.out.println(5 / 9); }
notion image
 
이번에는 5를 9로 나누었다. 실제 계산값은 0.55555555….. 지만
출력값은 0 이 나온다. 왜냐면 정수 5와 정수 9를 나누기 때문에 몫만 출력하고 나머지는 버리기 때문이다.
 
public static void main(String[] args) { System.out.println(5.0 / 9);
notion image
 
지금처럼 5나 9 중 하나 혹은 둘다 소수점을 붙여 실수로 만들면 소수점 값도 같이 출력된다.
 

2. 다운 캐스팅(강제 형변환)

 
강제적인 형변환을 형변환 연산자를 사용한다. 변경하려는 값의 앞에 원하는 자료형을 입력한다.
 
public static void main(String[] args) { int n1; n1 = (int) 12.5; System.out.println(n1); }
notion image
 
실수 12.5 를 정수형 n1에 대입하면 12가 출력된다.
notion image
 
실수에 정수를 대입하면 실행이 되지만
 
notion image
 
실수를 정수에 대입하는 것은 불가능하다.
 
 
💡
int 는 4Byte , double 는 8Byte 이기 때문에 크기가 작은 int 는 doueble 에 대입 가능하지만, 크기가 큰 double 을 int 에 대입하는 것은 불가능하다.
 
public static void main(String[] args) { int n1 = 1; double d1 = 1.5; n1 = (int) d1; System.out.println(n1); }
notion image
 
이럴 땐 다운 캐스팅으로 값을 정수로 출력할 수 있다.
 
 
 
 
Share article
RSSPowered by inblog