מהי חלוקת מספרים שלמים ב-Java?
חלוקה בג'אווה מתרחשת בדרך כלל כמו חלוקה רגילה במתמטיקה או בחיים האמיתיים. עם זאת, זה פשוט משליך את השאר. לדוגמה, אם אתה מחלק 9 ב-2, המנה היא 4 והשאר הוא 1. בחיים האמיתיים, התשובה היא 4.5 או 4½. אם תבצע את אותו חישוב עם int ב-Java, התשובה שלך תהיה 4. זה לא מעוגל למספר השלם הקרוב ביותר (כמו ~4.5 = 5) 1 שכן שארית נזרקת.דוגמה 1 [השאר הוא 0]
חלוקת המספרים השלמים ב-Java פועלת בצורה מושלמת עבור כל המקרים בהם המחלק מחלק לחלוטין את הדיבידנד (מספר שלם חלקי x שלם). התשובה היא מספר שלם וסוג הנתונים של מספר שלם יכול להחזיק אותו ללא הצפה. מכאן שאין אובדן נתונים. לדוגמה, עיין בקטע הבא.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);
}
}
תְפוּקָה
100 / 5 = 20 143 / 11 = 13
דוגמה 2 [השאר אינו 0]
עבור כל מקרי החלוקה שבהם היתרה אינה 0, התוצאה הסופית תוקצץ למספר השלם הנחלק הגדול ביותר (9/2 = 4). זה יוצג בדוגמה הקרובה. עשויים להיות מקרים שבהם אתה צריך את המנה בפועל בעשרונית. במקרה זה, אתה יכול להשתמש בסוג הנתונים צף או כפול. עם זאת, אם ברצונך לעגל את המנה ל-int הקרוב ביותר, תוכל לעשות את הפעולות הבאות.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);
}
}
תְפוּקָה
חלוקה שלמים 9 / 2 = 4 מתמטיקה חלוקה 9.0 / 2 = 4.5 סיבוב אינט חלוקה 9.0 / 2 = 5
הֶסבֵּר
מקרה I ומקרה II מובנים מאליהם. עבור מקרה III, אתה יכול לפרק אותו בשלבים הבאים.-
ראשית, עליך להמיר את הדיבידנד לכפול.
-
בצע את החלוקה הרגילה של Java int.
-
עיגל את המנה באמצעות שיטת Math.round() .
-
השתמש בסוג נתונים ארוך כדי לאחסן את המנה המעוגלת.
-
הנה לך! יש לך את הפלט הרצוי שלך בתור המנה.
GO TO FULL VERSION