2
以下の方法でオーバーフローエラーを修正する方法はありますか?数値が大きすぎる場合、オーバーフローエラーを修正するにはどうすればよいですか?
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