Как исправить ошибку переполнения в методе ниже?Как я могу исправить ошибку переполнения, когда числа могут быть слишком большими?
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', чем не использовать' long' и вместо этого использовать 'BigInteger' – ifly6
' BigDecimal' может вам помочь. – MordechayS
Это целые данные – ifly6