המחלקה Math

מהי המחלקה Math?

Math היא מחלקה מובנית עם אוסף של פונקציות ופעולות מתמטיות. כולן static, כלומר משתמשים בהן ישירות בלי ליצור אובייקט.

אין צורך לייבא - Math נמצאת ב-java.lang.

קבועים שימושיים

Math.PI    // 3.141592653589793
Math.E     // 2.718281828459045

פעולות בסיסיות

ערך מוחלט

Math.abs(-5);      // 5
Math.abs(-3.14);   // 3.14

מינימום ומקסימום

Math.max(5, 10);      // 10
Math.min(5, 10);      // 5
Math.max(3.5, 2.8);   // 3.5

חזקה

Math.pow(2, 10);    // 1024.0 - 2 בחזקת 10
Math.pow(5, 2);     // 25.0

שורש

Math.sqrt(16);      // 4.0
Math.sqrt(2);       // 1.4142135...

שורש קובייה:

Math.cbrt(27);      // 3.0

עיגול

עיגול רגיל (לקרוב ביותר)

Math.round(4.4);    // 4
Math.round(4.5);    // 5
Math.round(4.7);    // 5

עיגול כלפי מעלה

Math.ceil(4.1);     // 5.0
Math.ceil(4.0);     // 4.0

עיגול כלפי מטה

Math.floor(4.9);    // 4.0
Math.floor(4.0);    // 4.0

פונקציות טריגונומטריות

הן עובדות ברדיאנים (לא במעלות):

Math.sin(Math.PI / 2);     // 1.0  (sin של 90 מעלות)
Math.cos(0);               // 1.0
Math.tan(Math.PI / 4);     // 1.0  (tan של 45 מעלות)

המרה בין מעלות לרדיאנים

double radians = Math.toRadians(180);   // Math.PI
double degrees = Math.toDegrees(Math.PI); // 180.0

לוגריתמים

Math.log(Math.E);     // 1.0 - לוג טבעי (בסיס e)
Math.log10(1000);     // 3.0 - לוג בבסיס 10
Math.exp(1);          // 2.718... - e בחזקת x

מספר אקראי

double r = Math.random();   // 0.0..1.0
int dice = (int)(Math.random() * 6) + 1;  // 1..6

דוגמה: חישוב היפוטנוזה

double a = 3;
double b = 4;
double c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2));
System.out.println("היפוטנוזה: " + c);  // 5.0

דוגמה: עיגול למספר ספרות אחרי הנקודה

double value = 3.14159265;

// עיגול ל-2 ספרות אחרי הנקודה
double rounded = Math.round(value * 100.0) / 100.0;
System.out.println(rounded);  // 3.14

השוואה בין Math לאופרטורים

חלק מהפעולות אפשר לעשות גם בלי Math:

int a = 5;
int abs = (a < 0) ? -a : a;    // ערך מוחלט בלי Math
int square = a * a;             // במקום Math.pow(a, 2)

אבל Math נקייה יותר וברורה יותר, במיוחד בחישובים מורכבים.

בדקו את עצמכם

נסו לענות לבד לפני שאתם פותחים את התשובה.

  1. מה מחזיר Math.round(2.5)?

    1. שגיאה
    2. 3
    3. 2.5
    4. 2
    הצגת התשובה

    תשובה ב. Math.round מעגל חצי כלפי מעלה, ולכן 2.5 הופך ל-3.

  2. איזו פונקציה מחשבת חזקה?

    1. x ^ y
    2. Math.power
    3. Math.exp
    4. Math.pow
    הצגת התשובה

    תשובה ד. Math.pow(2, 3) מחזיר 8.0. ב-Java ^ הוא XOR ולא חזקה.