Mi az egész számok felosztása a Java nyelven?
Az osztás a Java nyelvben általában úgy történik, mint a matematikai vagy a valós életben a szokásos osztás. A maradékot azonban csak eldobja. Például, ha elosztja 9-et 2-vel, a hányados 4, a maradék pedig 1.
1. példa [ A maradék 0 ]
Az egész számok felosztása a Java-ban tökéletesen működik minden olyan esetben, amikor az osztó teljesen felosztja az osztalékot (egész osztva x egész számmal). A válasz egy egész szám, és az egész adattípus túlcsordulás nélkül képes megtartani. Így nincs adatvesztés. Például nézze meg a következő részletet.
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);
}
}
Kimenet
100/5 = 20 143 / 11 = 13
2. példa [ A maradék nem 0 ]
Minden olyan osztási esetben, ahol a maradék nem 0, a végeredmény a legnagyobb osztható egész számra lesz levágva (9/2 = 4). Ez a következő példában lesz bemutatva. Előfordulhat, hogy szüksége van a tényleges hányadosra tizedesben. Ebben az esetben használhatja a float vagy a dupla adattípust. Ha azonban a hányadost a legközelebbi int-re szeretné kerekíteni, akkor a következőket teheti.
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);
}
}
Kimenet
Egész osztás 9 / 2 = 4 Matematika osztás 9,0 / 2 = 4,5 Kerekítés int osztás 9,0 / 2 = 5
Magyarázat
Az I. és a II. eset magától értetődő. A III. eset esetében a következő lépésekkel bonthatja le.-
Először az osztalékot duplára kell konvertálnia.
-
Hajtsa végre a szokásos Java int felosztást.
-
Kerekítse a hányadost a Math.round() metódussal.
-
Használjon hosszú adattípust a kerekített hányados tárolásához.
-
Nesze! Megvan a kívánt kimenet hányadosaként.
GO TO FULL VERSION