Java/오류노트

[Java/오류노트] SonarLint: integer number too large

adjh54 2023. 12. 20. 22:35
728x170
해당 글에서는 integer number too large 오류에 대해 해결방법에 대해 알아봅니다.





1) 문제점: Integer number too large


 

1. Integer number too large


💡 Integer number too large

- Java에서 정수 값이 표현 가능한 범위를 초과했을 때 발생하는 오류입니다.

- int와 long은 정해진 비트 수로 값을 표현할 수 있습니다. 만약 이 비트 수를 초과하는 값을 사용하면 이 오류가 발생합니다.

 

 

💡 [참고] int(=Integer)와 long(=Long)의 최소/최대 범위입니다.
타입 최소 범위 최대 범위
int(=Integer) -2,147,483,648 +2,147,483,647
long(=Long) -9,223,372,036,854,775,808 9,223,372,036,854,775,807

 

Fixing the “java: integer number too large” Error | Baeldung

 

 

 

 

2) 해결방법 : Integer number too large


 

1. int/Integer를 long 타입으로 수정합니다.


💡 int/Integer를 long 타입으로 수정합니다.

- 해당 타입을 수정하더라도 동일한 오류가 발생하고 있습니다.

- 이는 long 타입의 최대 범위 안에 들어가는 숫자인데 동일하게 오류가 발생하고 있습니다

 

 

2. long 타입에 접미사를 붙여줍니다.


 

💡 long 타입에 접미사를 붙여줍니다.

- Java에서 숫자 리터럴을 작성할 때 정수 범위 내에 있든 없든 상관없이 Java는 이를 int / Integer 유형으로 처리합니다.

- 이를 위해 정수 리터럴을 long 타입으로 만들려면 ’L’  또는 'l' 접미사를 추가해야 합니다.
- 또한 ‘l’을 사용하기 보다는 ‘L’을 사용하는 것을 IntelliJ에서 권장하고 있습니다.

 

 

💡 아래와 같이 접미사를 붙여서 해결하였습니다.

 

 

3. [참고] float에 대해서도 접미사를 붙여줍니다.


💡 float에 대해서도 접미사를 붙여줍니다.
타입 최소범위 최대범위
float 1.4E-45 3.4028235E38
double 4.9E-324 1.7976931348623157E308

 

- 이를 위해 정수 리터럴을 long 타입으로 만들려면 ’F’ 또는 'f' 접미사를 추가해야 합니다.

 

 

💡 아래와 같이 해결하였습니다.

 

 

 

 

 

오늘도 감사합니다. 😀

 

 

 

 

그리드형