형변환

전영덕·2023년 1월 27일
0

Java Study

목록 보기
6/36
post-custom-banner

형변환(Casting)

1. 형변환이란?

  • 변수의 자료형(Data type)이 변환되는 것을 의미한다.
  • 특정 자료형의 값을 다른 자료형의 변수에 대입할 수 있다.
  • Data에 대한 손실 유무에 따라 암묵적 형변환과 명시적 형변환의 두 종류가 있다.

2. 암묵적 형변환

  • 암묵적 형변환은 서로 다른 자료형을 연산 혹은 대입하는 경우, java 컴파일러가 자료형을 통일한다.
    이 과정에서 발생하는 형변환을 암묵적 형변환이라고 한다.
  • 묵시적 형변환이라고도 부른다.
    int a = 100; //정수형
    float b = a; //
    정수형a를 실수형b에 대입한다.
    이처럼 Data type이 다르지만 data 손실없이 잘 담겨졌다면 암묵적 형변환이라고 한다.
  • 암묵적 형변환은 어떤 변수가 더 큰 범위의 변수로 대입 가능함을 의미한다.
    더큰 방향으로의 형변환이기에 upcasting이라고도 한다.

3. 명시적 형변환

  • 데이터의 손실을 감수하더라도, 강제로 형변환 시키는 형태이다.

    자료형 b = (변환할 자료형)a;

  • 실수형을 정수형으로 변환하는 경우, 소수점 이하 자리는 버려진다.
    double a = 3.14d;
    int b = (int)a; //3

  • 명시적 형변환은 downcasting이라고도 한다.

5-4. 서로 다른 형태에 따른 연산

  • 서로 다른 자료형에 대한 연산은 자료형의 범위가 큰 타입으로 자바가 upcasting 한 후에 계산하지만, 사람이 직접 downcasting하여 자바에게 계산시킬 수도 있다.
public static void main(String[] args) {
	
		double a = 10.5D;
		float b = 20.5F	;	
	// float f1 = a + b; //a와b가 담기는 것은 범위가 큰 double이므로 float에 담으면 error가 난다.
    
		double d = a+b;  		 	//31.0
		float f = (float)a+b;		//31.0	
	}
post-custom-banner

0개의 댓글