큐범
Just do debug
큐범
전체 방문자
오늘
어제
  • 전체보기 (128)
    • 회고 (4)
    • JAVA (16)
      • JAVA 기초 (18)
      • JAVA Algorithm, Datastruct (13)
    • Spring (11)
    • Micro Service Architecture (3)
    • JPA (6)
    • gRPC (4)
    • Network (8)
    • Process (7)
    • Cloud (4)
    • Python (10)
    • Web(vue) (2)
    • UMC (1)
    • DB (9)
    • CS (1)
    • Clean Code (1)
    • TDD (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
큐범

Just do debug

JAVA/JAVA 기초

[JAVA 기초]형변환(casting)

2021. 7. 8. 13:33

형변환이란?

변수나 리터럴의 타입을 다른 타입으로 변환하는 것을 형변환이라 한다.

형변환 방법

(타입)피연산자

ex) double d = 85.4;

int score = (int)d;

기본형에서 boolean을 제외한 모든 타입들은 서로 형변환이 가능하다. 또한, 기본형과 참조형간의 형봔한은 불가능하다.

 

기본형 형변환

변환 수식 결과
int → char (char)65 'A'
char → int (int)'A' 65
float → int (int)1.6f 1
int → float (float) 10 10.0f

정수형간의 형변환

int타입(4byte)의 값을 byte타입으로 변환하는 경우 값손실이 발생할 수 있다. 반대로 작은 타입에서 큰 타입으로 변경할 경우 값손실이 발생하지 않는다.

 

실수형 간의 형 변환

실수형에서도 정수형처럼 작은 타입에서 큰 타입으로 변환하는 경우, 빈 공간을 0으로 채운다.

ex)

double d = 1.0e100;

float f = (float)d;

double d = 1.0e-50;

float f = (float)d;

정수형과 실수형 간의 형변환

정수형과 실수형은 저장형식이 다르기에 정수형간의 변환처럼 간단히 값을 채우고 자르는 식으로 할 수 없다. 좀 더 복잡한 단계를 거춰야한다.

정수는 소수점 이하의 값이 없으므로 비교적 변환이 간단하다. int값을 각각 float과 double로 변환한 다음에 다시 int로 형변환 했을 경우 값의 변환이 보인다. float은 정밀도가 약 7자리 이기에 8자리가 넘어가는 정수를 저장할 경우 오차가 발생한다. 반면 double은 약 15자리의 정밀도를 갖기에 float보다 더 큰 범위가 오차없이 적용이 가능하다.

실수형을 정수형으로 변환

실수형을 정수형으로 변환하면 실수형의 소수점이하 값은 버려진다. 정수형의 표현형식으로 소수점 이하의 값은 표현할 수 없기 때문이다. 따라서 실수형을 정수형으로 형변할 할 때 반올림이 발생하지 않는다. 실수 1.666을 int형식으로 변환시 1이 된다.

자동형변환

float f = 1234; → 컴파일 과정 float f = (float)1234;

자동 형변환에는 규칙이 존재한다. 표현범위가 좁은 타입에서 넓은 타입으로 현변환하는 경우에는 값 손실이 없으므로 두 타입중에서 표현범위가 더 넓은 쪽으로 형변환된다.

  1. boolean을 제외한 나머지 7개의 기본형은 서로 형변환이 가능하다.
  1. 기본형과 참조형은 서로 형변환 할 수 없다.
  1. 서로 다른 타입의 변수간의 연산은 형 변환을 하는 것이 원칙이지만, 값의 범위가 작은 타이베서 큰 타입으로의 형변환은 생략할 수 있다.

 

 

출처 : JAVA의 정석 - (남궁성지음)

    'JAVA/JAVA 기초' 카테고리의 다른 글
    • [JAVA 기초]산술 연산자
    • [JAVA 기초]연산자(operator)
    • [JAVA 기초]기본형(primitive type)
    • [JAVA 기초]변수의 타입
    큐범
    큐범

    티스토리툴바