Vad är heltalsdelning i Java?
Division i Java sker normalt som vanlig division i matematik eller verkliga livet. Men det kasserar bara resten. Om du till exempel dividerar 9 med 2 är kvoten 4 och resten är 1.
Exempel 1 [Återstoden är 0]
Heltalsdelningen i Java fungerar perfekt för alla fall där divisorn delar utdelningen helt ( heltal dividerat med x heltal). Svaret är ett heltal och heltalsdatatypen kan hålla det utan överflöd. Därför finns det ingen förlust av data. Titta till exempel på följande utdrag.
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
Exempel 2 [Återstoden är inte 0]
För alla divisionsfall där resten inte är 0, kommer det slutliga resultatet att huggas av till det största delbara heltal (9/2 = 4). Detta kommer att visas i det kommande exemplet. Det kan finnas tillfällen då du behöver den faktiska kvoten i decimal. I det fallet kan du använda flytande eller dubbel datatyp. Men om du vill runda av kvoten till närmaste int kan du göra följande.
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
Heltalsdivision 9 / 2 = 4 Matematik division 9,0 / 2 = 4,5 Avrunda int division 9,0 / 2 = 5
Förklaring
Fall I och Fall II är självförklarande. För fall III kan du dela upp det i följande steg.-
Först måste du konvertera utdelningen till en dubbel.
-
Utför den vanliga Java int divisionen.
-
Avrunda kvoten med metoden Math.round() .
-
Använd lång datatyp för att lagra den avrundade kvoten.
-
Varsågod! Du har din önskade output som kvot.
GO TO FULL VERSION