재유's

[Java] 캐스팅 본문

IT Story/Java

[Java] 캐스팅

Stella_NY 2018. 11. 19. 16:32

캐스팅(자료형 변환)

자료형을 변환하는 것으로 상수(쉽게, 숫자)만 가능하다.



  • 자동 캐스팅

데이터 손실만 일어나지 않는 이상 자동으로 형변환을 해준다.

double은 실수형 자료타입이고 100이라는 값은 정수이다.
따라서 num1의 자료타입에 맞게 정수 100은 100.0으로 자동으로 캐스팅이 된다.

저장되는 값의 범위가 작은 형식의 변수가 더 큰 범위를 갖는 형식의 변수에 대입이 가능하다.
자바 컴파일러가 이 과정에서 자동으로 데이터타입을 변환하다.

변환 순서 byte > short >(char >) int > long > floar > double
예외적으로 char 타입을 int타입으로 변환 가능!

1
2
float a = 1.2F;
double b = a;       //작은 범위를 더 큰 범위에 대입


--> 작은 범위의 변수와 더 큰 범위의 연산 결과는더 큰 범위의 변수에만 대입가능



  • 명시적 캐스팅

자동 캐스팅은 데이터 손실만 일어나지 않으면 자동으로 변환된다. 
하지만 자동 캐스팅 규칙에 위배되더라도 캐스팅을 해야되는 경우 명시적으로 캐스팅이 가능하다 

*실수타입을 정수로 변환할 경우 소수점은 무조건 버려진다.

1
int num1 = (int)99.99;



int라는 정수형 타입 의 변수 num1에 실수형 데이터를 넣을때 앞에 (int)를 붙여 명시적으로 캐스팅을 하면
정수형에 걸맞게 데이터가 손실이 되며 저장이 된다. 즉, 소수점 이하는 제거되고 저장이된다.


'IT Story > Java' 카테고리의 다른 글

[JAVA] 연산자  (0) 2018.11.30
논리 연산자  (0) 2018.11.19
[Java] Java에서 사용되는 변수  (0) 2018.11.19
[Java] Java와 Javac의 차이점  (0) 2018.11.19
Java 설치및 환경변수 설정  (0) 2017.05.01
Comments