저번에 캐스팅 설명도 안하고 그냥 캐스팅을 쓰면 됩니다
이렇게 근본없이 설명을 했는데
이 블로그에 원래 근본이란 존재하지 않으므로
근본을 찾으려 하면 안된다
어쨌든 캐스팅 대충 개념은 알고 가야겠는데
먼저 위의 사진을 보면
float와 double에는 소수도 정수도 다 들어가지는데
int에는 소수가 안들어가진다
int에는 소수가 아닌 정수만 들어가기 때문에
Casting을 사용해야 되는데
어떻게 하냐면 걍 숫자 앞에 (int), (float), (long) 등을 박아버리면 된다
이렇게 소수 앞에 (int)를 박아버리니 에러가 안 뜨는데
어쨌든 1.5를 가지고 캐스팅을 했으니 a는 소수가 되는건가?
그런거 없고
소수는 저승으로 증발하고 1만 남은 것을 볼 수 있는데
int 형태로는 소수를 못 받는 것을 기억해보자
못 받으니까 소수를 다 날려버린 후 가져온거다
1.5나 1.231231231나 (int)로 캐스팅한 후 출력해보면
1만 출력된다
이쯤 되면 슬슬 캐스팅이 뭔지 감이 올텐데
캐스팅은 데이터형을 원하는 대로 변경하여 사용하는 거고
(변환할 데이터형 ex) int float double ... ) 변수명, 상수(constant)를 넣으면 된다..
마지막으로 자동형변환을 알고 넘어가보자
이거는 JVM이 자동으로 해주는 거기 때문에 외울 필요도 없다
이게 byte + byte를 더했을 시 연산결과가 데이터형보다 더 큰 경우가 있기 떄문에
JVM이 자동으로 결과 데이터형을 바꿔주는 것인데
byte+byte끼리 합쳐서 int형 크기가 되면 int로 바꿔주고
int + int 합쳐서 int 범위 넘으면 long으로 바꿔주고 그런거다
즉 자동형변환은 작은 데이터형으로 연산을 할 때
데이터형을 넘어서는 값이 나오면 더 큰 데이터형으로 바꿔준다!!!!
'IT > Java' 카테고리의 다른 글
자바 삼항연산자 알아보기 (0) | 2019.01.08 |
---|---|
자바 while, do while 알아보기 (0) | 2019.01.06 |
자바 switch 사용 시 범위 지정하기 (0) | 2018.12.26 |
자바 switch문 알아보기 (1) | 2018.12.20 |
자바 if문 알아보기 (1) | 2018.12.18 |
댓글