Cos'è la divisione intera in Java?
La divisione in Java avviene normalmente come una normale divisione in matematica o nella vita reale. Tuttavia, scarta solo il resto. Ad esempio, se dividi 9 per 2 il quoziente è 4 e il resto è 1.
Esempio 1 [Il resto è 0]
La divisione intera in Java funziona perfettamente per tutti i casi in cui il divisore divide completamente il dividendo (intero diviso x intero). La risposta è un numero intero e il tipo di dati intero può contenerlo senza overflow. Quindi non c'è perdita di dati. Ad esempio, dai un'occhiata al seguente frammento.
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);
}
}
Produzione
100 / 5 = 20 143 / 11 = 13
Esempio 2 [Il resto non è 0]
Per tutti i casi di divisione in cui il resto non è 0, il risultato finale verrà tagliato al più grande intero divisibile (9/2 = 4). Questo verrà mostrato nel prossimo esempio. Potrebbero esserci momenti in cui è necessario il quoziente effettivo in decimale. In tal caso, puoi utilizzare il tipo di dati float o double. Tuttavia, se desideri arrotondare il quoziente all'int più vicino, puoi procedere come segue.
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);
}
}
Produzione
Divisione intera 9 / 2 = 4 Divisione matematica 9.0 / 2 = 4.5 Divisione intera arrotondata 9.0 / 2 = 5
Spiegazione
Il caso I e il caso II si spiegano da soli. Per il caso III, puoi suddividerlo nei seguenti passaggi.-
Innanzitutto, devi convertire il dividendo in un doppio.
-
Esegui la normale divisione Java int.
-
Arrotonda il quoziente usando il metodo Math.round() .
-
Usa il tipo di dati long per memorizzare il quoziente arrotondato.
-
Ecco qua! Hai l'output desiderato come quoziente.
GO TO FULL VERSION