값형의 오류
값형 (기본형 ,원시형)을 쓸 때 가끔 오류가 발생하는데 이유를 알아보자
예시이다
long l1 = 3000000000;
이렇게 작성 할 경우
이렇게 오류가 나는데
오류 메세지를 읽어보면
30억은 int 타입 범위 밖의 숫자라 안된다 라는 메세지가 뜬다
분명 long인데 왜 30억에 에러가 나고 갑자기 int 이야기가 나오는걸까 ?
정수형의 기본형은 int형이다
정수를 적을 때 구분 할 수 있는 것을 작성하지 않으면
보편적으로 가장 많이 사용하는 int로 간주하게 되며
int의 경우 약 21억 까지의 숫자를 표기할 수 있기 때문에
이렇게 에러가 나게 됩니다.
long l1 = 3000000000L;
이렇게 언어에서 구분 할 수 있도록 숫자 뒤에 L을 붙여 long이라는 걸 인지 시켜주면
정상적으로 변수에 값을 넣을 수 있다 .
마찬가지로
예시 2
float f1 = 3.14;
동작하게 되면 이렇게 에러 메세지가 뜨는데 이번엔
타입 미스매치라는 문구와 함께
double 과 float가 뜨는데
실수형의 기본형은 double이다
실수형의 경우 일반적으로 정확도를 높이기 위해 double을 많이 사용하다 보니
디폴트 값이 double로 되어 있으며
float 에 double을 넣으려고 하는 셈이 되어버려 오류가 발생한 것 입니다.
이를 고치려면
float f1 = 3.14f;
이렇게 작성하면 에러가 뜨지 않습니다.
'java' 카테고리의 다른 글
자바의 연산자(Operator)-1 (0) | 2024.01.18 |
---|---|
[JAVA]자료형 변환 (0) | 2024.01.18 |
자바의 입력(Input) , Scanner , BufferedReader (0) | 2024.01.18 |
자바의 Print문 (0) | 2024.01.18 |
자바의 자료형 (기본형) (Java Data Type) (1) | 2024.01.18 |