[TIL][Java][2023-11-06] 변수 타입 바꾸기 - 형변환

2023. 11. 6. 20:59TIL/Java

저번 글에서 변수에 대해 정리해 보았다. 이번 글에서는 변수 타입을 변경하는 방법에 대해 정리해보려 한다.

 

Java 프로그래밍을 하다보면 어떤 변수형을 다른 형으로 변환이 필요한 경우가 많이 발생한다.

형변환은 주로 기본형 변수인 '정수 - 실수 - 문자' 사이에서 일어난다.

 

 

정수형, 실수형 간 발생하는 형변환

 

정수형과 실수형 간에 변환할때는 ({원하는타입}) 명령을 통해 변환할 수 있다. (캐스팅)

 

 

Double, Float to Int

 

(int)캐스팅 방식으로 실수를 정수로 변환하는 방법.

이때 실수형의 소수점 아래자리는 버려진다.

double doubleNum = 10.101010;
float floatNum = 10.1010;

int intNum;
intNum = (int)doubleNum; // double -> int 형변환
intNum = (int)floatNum; // float -> int 형변환

 

 

Int to Double, Float

 

(Double, Float) 캐스팅 방식으로 정수형을 실수형으로 변환하는 방법이다.

int intNum = 10;

double doubleNum = (double)intNum; // int -> double 형변환
float floatNum = (float)intNum; // int -> float 형변환

 

 

자동 형변환

 

Java 프로그래밍에서 형변환을 직접적으로 캐스팅하지 않아도 자동으로 형변환 되는 케이스가 있다.

프로그램 실행 도중에 값을 저장하거나 계산할 때 자동으로 타입변환이 일어난다.

  • 작은 크기의 타입에서 큰 크기의 타입으로 저장될 때 큰 크기로 형변환이 발생한다.
  • 작은 크기의 타입이 큰 크기의 타입과 계산될 때 자동으로 큰 크기의 타입으로 형변환이 발생한다.

 

 

자동 형변환 vs 강제 형변환

 

작은 타입 --> 큰 타입 형변환 시 (자동 형변환)

  • 더 큰 표현범위를 가진 타입으로 변환되는 것이라 값의 손실이 없다.
  • 값의 손실없이 변환이 가능하기 때문에 컴파일러가 자동으로 형변환을 해준다.

 

큰 타입 --> 작은 타입 형변환 시 (강제 형변환 = 캐스팅)

  • 더 작은 표현범위를 가진 타입으로 변환되는 것이라 값의 손실이 발생한다.
  • 값의 손실이 생기기 때문에 자동으로 형변환을 해주지 않고 개발자가 직접 형변환을 한다.