본문 바로가기
코딩

[JAVA] 형 변환 (Casting) 방법

by anica0206 2023. 9. 14.

형 변환 (Casting)

컴퓨터는 연산시 타입을 일피 시키고 연산을 수행한다.

형변환이란 변수 또는 상수의 타입을 다른 타입으로 변환하는 것.

float + int -> float + float

형 변환 방법

1. 묵시적 형 변환 (자동 형 변환)

컴파일러가 자동으로 형 변환 시킨다.

작은 수에서 큰 수로, 덜 정밀한 수에서 더 정밀한 수로 대입되는 경우 자동으로 형 변환이 된다.

//묵시적 형변환 (자동 형변환)
byte bNum = 12;
int iNum = bNum;
int result = bNum + iNum; //int + int

System.out.printf("%d+%d=%d%n", bNum, iNum, result);

//정수와 실수간 연산
int iNum1 = 17;
float fNum = 22.0f;
double dResult = iNum1 + fNum; //float + float

System.out.printf("dResult=%f", dResult);

2. 명시적 형 변환

묵시적 형 변환의 반대로 변환되는 자료형을 명시해야 된다. 자료의 손실이 발생 할 수 있다.

큰 수를 작은 데이터 타입에 할당하는 경우 사용된다.

int iNum = 12;
byte bNum = (byte)iNum;
int iNum = 12;
byte bNum = (byte) iNum;

System.out.println("iNum = " + iNum);
System.out.println("bNum = "+ bNum);
System.out.println("-----------------------------------");
iNum = 129;
bNum = (byte) iNum;

System.out.println("iNum = " + iNum);
System.out.println("bNum = "+ bNum);

//더 정밀한 변수에서 덩 정밀한 변수로 대입
double dNum = 3.14; //실수에 default는 double이므로 서픽스 d 생략 가능
iNum = (int) dNum;

System.out.println("bNum = "+ dNum);
System.out.println("iNum = " + iNum);