CodeGym /Java blogg /Slumpmässig /Heltalsdivision Java
John Squirrels
Nivå
San Francisco

Heltalsdivision Java

Publicerad i gruppen

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. Heltalsdivision Java - 1I verkliga livet är svaret 4,5 eller 4½. Om du utför samma beräkning med int i Java blir ditt svar 4. Det avrundas inte till närmaste heltal (som ~4,5 = 5) 1 eftersom en rest slängs.

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.

Slutsats

Uppdelning med Java-heltal kan se knepigt ut i början. Men med lite övning och upprepning kan du få tag i det. Öva så mycket du kan. Återkom gärna till vårt inlägg när du känner för det. Skål! För att förstärka det du lärde dig föreslår vi att du tittar på en videolektion från vår Java-kurs
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION