600851475143에 대한 "정수 수가 너무 큼" 오류 문제 해결
다음 코드 조각을 고려하십시오.
public class Three { public static void main(String[] args) { Three obj = new Three(); obj.function(600851475143); } private Long function(long i) { Stack<Long> stack = new Stack<>(); for (long j = 2; j <= i; j++) { if (i % j == 0) { stack.push(j); } } return stack.pop(); } }
이 코드는 함수에 전달된 리터럴 600851475143으로 실행되며 "정수 수가 너무 큼" 오류가 발생합니다. 그 이유를 이해하려면 관련된 데이터 유형을 자세히 살펴볼 필요가 있습니다.
Java에는 객체 없이 숫자를 나타내는 int 및 long과 같은 기본 데이터 유형이 있습니다.
여기서 문제는 600851475143이 int로 표현할 수 있는 최대값을 초과한다는 것입니다. 이 문제를 해결하려면 숫자에 "L" 접미사를 추가하여 long 유형의 리터럴을 사용해야 합니다: 600851475143L.
obj.function(600851475143L);
이 수정을 사용하면 코드가 오류 없이 실행되고 반환됩니다. 600851475143L의 가장 큰 소인수입니다.
위 내용은 600851475143을 사용할 때 Java 코드에서 '정수 수가 너무 큼' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!