형변환 이란?
변수나 리터럴 타입을 다른 타입으로 변환하는 것을 '형변환'이라고 한다.
주로 타입이 다른 값들을 계산하는 경우 사용된다.
타입이 다른 값들은 같은 타입으로 변환한 다음에 계산하여야 한다.
형변환 방법
(타입)피연산자 와 같은 형식으로 바꾸어준다.
double height = 188.2;
int hello = (int)height;
// hello = 188
// height = 188.2
*기본형에서 boolean을 제외한 나머지 모든 타입들은 서로 형변환이 가능하다.
정수형 간의 형변환
int(4byte)를 byte(1byte)로 변환하는 경우 값의 손실이 발생한다.
반대로 작은 타입에서 큰 타입으로 변환하는 경우 남은 공간은 0으로 채운다.
단, 변환하려는 값이 음수인 경우 빈 공간을 1로 채운다. ( ==>2의 보수)
실수형 간의 형변환
실수형에서도 정수형과 같이 작은 타입에서 큰 타입으로 변환하는 경우, 빈 공간을 0으로 채운다.
(float타입의 범위를 넘는 값을 float로 형변환 하는 경우 ±무한대 또는 ±0이 된다.)
정수형을 실수형으로 변환
정수는 소수점이하의 값이 없으므로 정수를 2진수로 변환한 다음 실수로 저장된다.
하지만 실수형의 정밀도 제한으로 인해 오차가 발생할 수 있다.
91234567 - (float) → 91234568.0 - (int) → 91234568
91234567 - (double) → 91234567.0 - (int) → 91234567
출처: https://sambalim.tistory.com/74 [삼바의 성장 블로그]
int는 약 20억으로 10자리의 정밀도, float는 10진수로 7자리의 정밀도를 제공하므로 오차가 발생할 수 있다.
따라서 8자리 이상의 값을 실수형으로 변환할때는 double(15자리)을 사용해야 한다.
'JAVA' 카테고리의 다른 글
선택정렬, 삽입정렬구현 (0) | 2022.01.17 |
---|---|
Chapter 05 배열 (Array) - 220103~ (0) | 2022.01.13 |
Java 수업복습(220110~) - 조건문과 반복문(if, switch, for, while statement) (0) | 2022.01.11 |
java 수업복습(220106) - 연산자(Operator) (0) | 2022.01.10 |
java 수업 복습 (220105) - 연산자(Operator) (0) | 2022.01.05 |