2월 08, 2024

Integer number too large 에러 간단히 해결하기 (숫자 뒤에 L 붙이기)

 자바에서 프로그래밍을 하다 보면 분명히 long 형으로 자료형을 명시해주었음에도 불구하고 Integer number too large 에러가 뜨는 경우가 있을 것이다. 


정수의 범위는 익숙하게 잘 알고 있겠지만 -2147483648 ~ 2147483647 사이이다. 따라서 이 범위보다 더 큰 숫자를 표현하고 싶다면 당연히 자료형으로 long 형을 사용해야 한다. 하지만 아래와 같이 코드를 쓰면 어떤 일이 일어날까?

long largenumber=2147483648;

바로 "Integer number too large" 라는 에러가 뜨게 된다. 


분명 long 형으로 변수를 선언했고 숫자도 long 자료형의 범위 안에 있는데 왜 에러가 뜨는 것일까? 


그 이유는 자바에서 long 형의 숫자를 선언할 때는 뒤에 L을 붙여야 하기 때문이다. 

 

long largenumber=2147483648L;

따라서 위와 같이 코드를 작성해주면 에러 메세지가 사라지는 것을 볼 수 있다. 대문자 L 대신 소문자 l을 사용하는 것도 가능하다. 

 

long largenumber=2147483648L;
long largenumber=2147483648l; //이것도 가능

하지만 소문자 l은 숫자 1과 잘 구별이 되지 않아 대문자 L을 써주는 경우가 대부분이라고 한다. 

 

Long 형에는 L을 붙여야 한다라는 사실을 잘 알고 있지만 막상 에러 메세지가 뜨면 왜 틀린지 모르는 경우가 있을 것이다. 따라서 까먹지 말고 long 형의 datatype과 숫자 뒤 L을 함께 기억해두자!