[JAVA] 타입 변환

gogori6565·2022년 9월 17일
0

JAVA

목록 보기
2/11

자동 타입 변환

  • 작은 타입은 큰 타입으로 자동 변환 : 컴파일러가 수행
  • 치환문(=)이나 수식 내에서 타입이 일치하지 않을 경우
long m = 25; //25는 int 타입인데 25가 long 타입으로 자동 변환되는 사례
double d = 3.14*10; //실수 연산을 하기 위해 10이 자동 10.0으로 변환
//다른 피연산자 3.14가 실수이기 때문임

강제 타입 변환

  • 자동 타입 변환이 안되는 경우 : 큰 타입 -> 작은 타입
int n = 300;
byte b = n; //컴파일 오류.

강제 타입 변환

  • 개발자가 강제로 타입 변환 : () 안에 타입 지정
  • 강제 변환은 값 손실 우려가 있다
byte b = (byte)n;

정수 300 = 0x0000012C (32bit)
-->
byte 타입으로 0x2C (8bit) 으로 정수 44가 됨 (44 = 300%256)

double d = 1.9;
int n = (int)d; //n=1

강제 타입 변환으로 소수점 이하 0.9 손실

profile
p(´∇`)q

0개의 댓글