Qu'est-ce que la division entière en Java ?
La division en Java se déroule normalement comme une division régulière en mathématiques ou dans la vie réelle. Cependant, il ne fait que supprimer le reste. Par exemple, si vous divisez 9 par 2, le quotient est 4 et le reste est 1. Dans la vraie vie, la réponse est 4,5 ou 4½. Si vous effectuez le même calcul avec int en Java, votre réponse sera 4. Il n'est pas arrondi à l'entier le plus proche (comme ~ 4,5 = 5) 1 car un reste est jeté.Exemple 1 [ Le reste est 0 ]
La division entière en Java fonctionne parfaitement pour tous les cas où le diviseur divise complètement le dividende (entier divisé par x entier). La réponse est un nombre entier et le type de données entier peut le contenir sans débordement. Il n'y a donc pas de perte de données. Par exemple, regardez l'extrait suivant.public class IntegerDivision {
public static void main(String[] args) {
int dividend = 100;
int divisor = 5;
int quotient = dividend / divisor;
//Dividend completely divides the divisor
System.out.println(dividend + " / " + divisor + " = " + quotient);
dividend = 143;
divisor = 11;
quotient = dividend / divisor;
//Dividend completely divides the divisor
System.out.println(dividend + " / " + divisor + " = " + quotient);
}
}
Sortir
100 / 5 = 20
143 / 11 = 13
Exemple 2 [ Le reste n'est pas 0 ]
Pour tous les cas de division où le reste n'est pas 0, le résultat final sera coupé au plus grand entier divisible (9/2 = 4). Cela sera présenté dans l'exemple suivant. Il peut arriver que vous ayez besoin du quotient réel en décimal. Dans ce cas, vous pouvez utiliser le type de données float ou double. Cependant, si vous souhaitez arrondir le quotient à l'entier le plus proche, vous pouvez procéder comme suit.public class IntegerDivision {
public static void main(String[] args) {
int dividend = 9;
int divisor = 2;
int quotient = dividend / divisor;
// Case I - Dividend does not divide the divisor completely
// The quotient is chopped / truncated
System.out.print("Integer division \t\t" );
System.out.println(dividend + " / " + divisor + " = " + quotient);
// Case II - Mathematical or real life division
// Use float or double data type to get the actual quotient
double actualQuotient = (double)dividend / divisor;
System.out.print("Mathematics division \t\t" );
System.out.println((double)dividend + " / " + divisor + " = " + actualQuotient);
// Case III - Integer Division with rounding off
// the quotient to the closest integer
long roundedQuotient = Math.round((double)dividend / divisor);
System.out.print("Round off int division \t\t" );
System.out.println((double)dividend + " / " + divisor + " = " + roundedQuotient);
}
}
Sortir
Division entière 9 / 2 = 4
Division mathématique 9.0 / 2 = 4.5
Division entière arrondie 9.0 / 2 = 5
Explication
Le cas I et le cas II sont explicites. Pour le cas III, vous pouvez le décomposer dans les étapes suivantes.-
Tout d'abord, vous devez convertir le dividende en un double.
-
Effectuez la division int régulière de Java.
-
Arrondissez le quotient à l'aide de la méthode Math.round() .
-
Utilisez le type de données long pour stocker le quotient arrondi.
-
Voilà! Vous avez votre sortie souhaitée comme quotient.