Wat is geheeltallige deling in Java?
Deling op Java vindt normaal plaats zoals gewone deling in wiskunde of in het echte leven. Het gooit echter gewoon de rest weg. Als u bijvoorbeeld 9 door 2 deelt, is het quotiënt 4 en de rest is 1. In het echte leven is het antwoord 4,5 of 4½. Als u dezelfde berekening uitvoert met int in Java, is uw antwoord 4. Het wordt niet afgerond naar het dichtstbijzijnde gehele getal (zoals ~4,5 = 5) 1 omdat een rest wordt weggegooid.Voorbeeld 1 [ Rest is 0 ]
De gehele deling in Java werkt perfect voor alle gevallen waarin de deler het deeltal volledig deelt (geheel getal gedeeld door x geheel getal). Het antwoord is een geheel getal en het gegevenstype geheel getal kan het bevatten zonder overloop. Er is dus geen verlies van gegevens. Kijk bijvoorbeeld eens naar het volgende fragment.
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);
}
}
Uitgang
100 / 5 = 20 143 / 11 = 13
Voorbeeld 2 [ Rest is niet 0 ]
Voor alle gevallen van deling waarbij de rest niet 0 is, wordt het eindresultaat afgehakt tot het grootste deelbare gehele getal (9/2 = 4). Dit wordt getoond in het volgende voorbeeld. Het kan voorkomen dat u het werkelijke quotiënt in decimalen nodig heeft. In dat geval kunt u het datatype float of double gebruiken. Als u het quotiënt echter wilt afronden naar de dichtstbijzijnde int, kunt u het volgende doen.
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);
}
}
Uitgang
Integer delen 9 / 2 = 4 Wiskunde delen 9.0 / 2 = 4.5 Afronden int delen 9.0 / 2 = 5
Uitleg
Geval I en Geval II spreken voor zich. Voor geval III kunt u het in de volgende stappen opsplitsen.-
Eerst moet u het dividend omzetten in een verdubbeling.
-
Voer de reguliere Java int-divisie uit.
-
Rond het quotiënt af met de methode Math.round() .
-
Gebruik lang datatype om het afgeronde quotiënt op te slaan.
-
Daar ga je! U hebt uw gewenste uitvoer als het quotiënt.
GO TO FULL VERSION