on
Java/형변환
Java/형변환
[ 형변환 ]
Tybe Conversion 란 데이터의 타입을 변경하는 것
데이터나 변수의 자료형을 다른 자료형으로 변환시키는 것
- 기본형과 참조형 모두 형변환이 가능하다.
- 기본형은 기본형끼리만, 참조형은 참조형끼리만 형변환 가능하다.
int ->double
int->flot
- 서로 다른 자료형들은 같은 타입으로 변경시킨 후 연산 가능하다
double a = 3.0F; ---> F (float) 이 붙어 있어도 double로 인식
float a = 3.0;
float (32bit) < double (64bit)
* 표현 범위가 좁은 데이터 타입에서 넓은 데이터 타입으로 변환만 허용된다.
< 예외 > boolean 은 false 와 true 만을 저장하기 위해 특별히 만들어진 데이터 타입이므로 형변환이 불가능하다.
[ 묵시적형변환(자동형변환) ]
- 프로그램 실행 도중 자동으로 일어나는 형변환
- 작은 타입을 큰 타입으로 변수에 할당하면 자동으로 변환된다.
- 자동 형 변환이 발생하면 변환 이전의 값과 변환 이후 값이 동일하다.
(주의)
char는 2byte이지만 표현 범위가0~65535이므로 음수를 저장할 수 없다.
음수가 저장될 수 있는 byte타입을bytechar타입으로 자동 형변환할 수 없다.
< 예시 >
int a =3;
float b= 1.0F;
double c = a +b; ---------------> double c =int + float;
정수 -> 실수
a = 3.0F
b = 1.0F
c의 결과 값은 4.0F
[ 명시적 형변환(강제 형변환) ]
float a =(float) 100.0; ---> double형 데이터를 float으로 a변수에 대입하려고 하면
double보다 작은 데이터 float이라서 정보의 오류가 생김
int b = 100.0; ---> 실수형 데이터가 정수형(int) b변수에 대입하려고 하면
정수보다 실수가 더 크기 때문에 정보에 손실이 생김
- 넓은 범위를 표현 가능 한 큰 타입의 데이터를 좁은 범위를
표현 가능한 작은 타입으로 형 변환할 때에는 명시적으로 형변환을 해야 한다.
float a =(float) 100.0;
int b = (int) 100.0F;
from http://lovelyspace.tistory.com/7 by ccl(A) rewrite - 2021-10-31 02:28:03