본문 바로가기

개발/JAVA

[JAVA] #10. 자동 형변환 / 강제 형변환 (CAST)

문자열에있는 숫자를 계산하고 싶은경우, 스트링변수에 Int값을 넣고싶은 경우 등등,

코딩을 하다보면 어떤 변수형을 다른 형으로 강제 치환해야 할 경우가 많다. 

그럴 때 유용하게 쓰이는 형변환에 대해 알아보자.

▶문자 -> 숫자 

▶문자 -> 숫자 

package main;


public class mainClass {


public static void main(String[] args) {



/*

[우선순위]


(자료형) 변환

boolean 1


byte 1

short 2

int 4

long 8


float 4 // 소수점형이 우선순위는 더 높음

double 8


(자동 형 변환, 강제 형(cast) 변환)


*/


// 자동형 변환 (작은 그릇에서 큰 그릇으로 변환)


short sh = 10;

int num;


num = sh; // 자동 형변환

System.out.println("num = " + num);


// 반대 되는 경우


num = 20;

sh = (short)num; // 강제(cast) 형변환

System.out.println(" sh = " + sh);


num = 128; // byte 범위를 넘어섰다


byte by = (byte)num;

System.out.println("by = " + by);


float f1;


f1 = (float) 3 / 2;

// 1.0이 나오는 경우는 int 값으로 읽었기 때문.

계산 먼저 한 다음에 자동형 저장된다.

'정확한 계산값 요구될 때' 강제형 변환이 필요하다.


System.out.println("f1 = " + f1);

// 이런 경우 잘 사용이 된다



// 우선순위 TEST


long lo = 12121231311L;

float fl;


fl = lo;


double d;

d = lo;


System.out.println("fl = " + fl);

System.out.println("d = " + d);


// 1.21212314E10 (결과값)

// E = *10 이라는 의미, E10 = 10의 10승, * 10000000000

// E3 : *10을 3번 한 것이다

// E-2 : * (1/10) * (1/10)


double value = 123.4567;

// 대체로 소수점은 뒤에 짜르고 사용한다. 보기 편하기 위해, 이런 경우 잘 사용된다

int n;

n = (int)value;

System.out.println("n =" + n);

}


}