값형의 오류

값형의 오류

값형 (기본형 ,원시형)을 쓸 때 가끔 오류가 발생하는데 이유를 알아보자

예시이다

long l1 = 3000000000;

이렇게 작성 할 경우

에러1

이렇게 오류가 나는데

오류 메세지를 읽어보면

30억은 int 타입 범위 밖의 숫자라 안된다 라는 메세지가 뜬다

분명 long인데 왜 30억에 에러가 나고 갑자기 int 이야기가 나오는걸까 ?

정수형의 기본형은 int형이다

정수를 적을 때 구분 할 수 있는 것을 작성하지 않으면
보편적으로 가장 많이 사용하는 int로 간주하게 되며
int의 경우 약 21억 까지의 숫자를 표기할 수 있기 때문에
이렇게 에러가 나게 됩니다.


long l1 = 3000000000L; 

이렇게 언어에서 구분 할 수 있도록 숫자 뒤에 L을 붙여 long이라는 걸 인지 시켜주면
정상적으로 변수에 값을 넣을 수 있다 .

마찬가지로
예시 2


float f1 = 3.14;

에러2

동작하게 되면 이렇게 에러 메세지가 뜨는데 이번엔
타입 미스매치라는 문구와 함께
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