Comment puis-je corriger l'erreur de débordement dans la méthode ci-dessous?Comment réparer une erreur de débordement lorsque les nombres peuvent être trop grands?
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;
}
}
Cette ligne peut déborder si les deux chiffres sont trop gros:
return (numbers[middle - 1] + numbers[middle])/2.0;
Comment résoudre ce problème?
Ajoutez du code pour vérifier qu'ils ne débordent pas, et s'ils le font, faites quelque chose. Il n'y a pas grand-chose que vous pouvez faire avec un 'long' débordant autre que ne pas utiliser' long's et à la place utiliser un 'BigInteger' – ifly6
' BigDecimal' peut vous aider. – MordechayS
Il s'agit de données entières – ifly6