2
어떻게 아래의 방법으로 오버플로 오류를 해결할 수 있습니까?숫자가 너무 커지면 어떻게 오버플로 오류를 해결할 수 있습니까?
return (numbers[middle - 1] + numbers[middle])/2.0;
방법이 문제를 해결하려면 다음 두 숫자가 너무 큰 경우
public static double median(long[] numbers) {
Arrays.sort(numbers);
int middle = numbers.length/2;
if (numbers.length % 2 == 1) {
return numbers[middle];
} else {
return (numbers[middle - 1] + numbers[middle])/2.0;
}
}
이 행 오버 플로우 수있다?
return (numbers[middle - 1] + numbers[middle])/2.0;
방법이 문제를 해결하려면 다음 두 숫자가 너무 큰 경우
오버플로가 없는지 확인하기 위해 코드를 추가하고, 오버플로가 아닌지 확인하려면 코드를 추가하십시오. 'long'을 사용하지 않고'BigInteger'를 사용하는 것 이외에'long'을 오버플로 할 수있는 것은 많지 않습니다. – ifly6
'BigDecimal'이 도움이 될 수 있습니다. – MordechayS
정수 데이터입니다. – ifly6