Hvad er heltalsdeling i Java?
Division i Java foregår normalt ligesom almindelig division i matematik eller det virkelige liv. Men det kasserer bare resten. For eksempel, hvis du dividerer 9 med 2, er kvotienten 4, og resten er 1. I det virkelige liv er svaret 4,5 eller 4½. Hvis du udfører den samme beregning med int i Java, vil dit svar være 4. Det er ikke afrundet til det nærmeste heltal (som ~4,5 = 5) 1, da en rest bliver smidt væk.Eksempel 1 [Resten er 0]
Heltalsdivisionen i Java fungerer perfekt til alle de tilfælde, hvor divisoren deler dividenden fuldstændigt ( heltal divideret med x heltal). Svaret er et helt tal, og heltalsdatatypen kan indeholde det uden overløb. Derfor er der intet tab af data. Tag for eksempel et kig på følgende uddrag.
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);
}
}
Produktion
100 / 5 = 20 143 / 11 = 13
Eksempel 2 [Resten er ikke 0]
For alle divisionstilfælde, hvor resten ikke er 0, vil det endelige resultat blive skåret af til det største delelige heltal (9/2 = 4). Dette vil blive udstillet i det kommende eksempel. Der kan være tidspunkter, hvor du har brug for den faktiske kvotient i decimal. I det tilfælde kan du bruge flydende eller dobbelt datatype. Men hvis du ønsker at runde kvotienten af til nærmeste int, kan du gøre følgende.
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);
}
}
Produktion
Heltals division 9 / 2 = 4 Matematik division 9,0 / 2 = 4,5 Afrund int division 9,0 / 2 = 5
Forklaring
Case I og Case II er selvforklarende. For Case III kan du opdele det i de følgende trin.-
Først skal du konvertere udbyttet til en fordobling.
-
Udfør den almindelige Java int division.
-
Afrund kvotienten ved hjælp af Math.round() metoden.
-
Brug lang datatype til at gemme den afrundede kvotient.
-
Værsgo! Du har dit ønskede output som kvotient.
GO TO FULL VERSION