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