본문 바로가기
Java/기본 개념 및 클래스

[Java] 6. 형 변환과 형 변환의 종류

글: Song hyun 2024. 4. 10.
728x90
반응형

[Java] 6. 형 변환과 형 변환의 종류

관련글: [Java] 4. 데이터 타입과 비트, 바이트, 아스키코드

https://whatsthatsound.tistory.com/7

 

 

1. 형 변환(Type Casting, Type Conversion)

형 변환은 자료형의 종류를 바꾸는 것을 말한다.

형 변환에는 크게 두 가지 종류가 있는데, 자동 형 변환(Promotion)강제 형 변환(Casting)이다. 

 

 

 

 

 

2. 자동 형 변환 (Promotion)

-자동 형 변환은 데이터가 작은 타입에서 큰 타입으로 변환하는 것이다.

-작은 집에서 큰 집으로 이사를 간다고 생각해보자. 공간이 부족해 짐을 놓지 못할 일은 없을 것이다.

그와 같이, 이 때는 값을 그대로 복사하기 때문에 메모리에 손실이 없다.

 

3. 강제 형 변환(Casting)

-강제 형 변환은 데이터가 큰 타입에서 작은 타입으로 변환하는 것이다.

-크기가 큰 집에서 작은 집으로 이사를 가는 것과 같다. 이전에 살던 곳보다 공간이 부족해, 짐을 버리거나, 놔두고 와야 할 수도 있다. 그와 같이, 강제 형 변환 시에는 데이터의 손실이 일어나기도 한다. double, float 형에서 int형으로 강제 형 변환시 소수점 아래의 수들이 버려지는 것과 같다. 

-강제 형 변환시에는 앞에 데이터 타입의 종류를 입력해야 한다. 그렇지 않으면 컴파일 에러가 발생한다.

 

4. 강제 형 변환 하기

-강제 형 변환 시, 데이터의 손실이 발생할 수도 있기 때문에 별도의 표시를 해야한다. 

-작은 변수=(작은 변수의 자료형)큰 변수 이다.

 

-아래 사진에서와 같이, 

특정 변수를 강제 형 변환 하고 싶을 때는 R-Value의 변수명 앞에 (자료형)을 붙여줘야

에러 없이 강제 형 변환을 할 수 있다.

discount=interest_rate;에서 에러가 발생했다. 다른 명령어 없이 int(4바이트)형의 변수 discount에 double(8바이트)형의 변수 interest_rate를 넣었기 때문이다. (좌측) 

 

 

728x90
반응형