Baza Wiedzy

Klasa Math

Klasa Math służy w Javie do wykonywania zarówno podstawowych jak i nieco bardziej skomplikowanych operacji matematycznych. Znajdziemy w niej metodę do potęgowania i pierwiastkowania liczb, obliczania funkcji trygonometrycznych, a także stałe PI oraz E.

Kurs Java

Stałe🔗

W klasie Math znajdziemy dwie stałe typu double:

    • Math.PI (3.141592653589793)
    • Math.E (2.718281828459045)

    które odpowiadają liczbie pi oraz e często wykorzystywanych we wzorach matematycznych. Warto ich używać, zamiast ręcznego definiowania np. wartości 3.14.

    Metody🔗

    Wszystkie metody w ramach tej klasy są statyczne więc nie musimy tworzyć obiektu klasy Math, aby korzystać z metod w niej zdefiniowanych. Klasa znajduje się w pakiecie java.lang więc nie musimy jej importować, aby z niej skorzystać.

    Wartość bezwzględna🔗

    Do obliczenia wartości bezwzględnej służy metoda abs(), która występuje w przeciążonych wersjach dla typów int, float, double i long.

    Funkcje trygonometryczne🔗

    Możliwość obliczenia funkcji trygonometrycznych dają nam metody:

      • double sin(double a)
      • double cos(double a)
      • double tan(double a)

      Jako argument należy przekazać stopnie z radianach. W celu zamiany stopni na radiany możemy skorzystać z metody Math.toRadians(double a).

      Min / Max🔗

      Metody Min/Max dają możliwość wybrania większej z liczb, co jest przydatne jeśli chcemy uniknąć powtarzalnego zapisywania warunków if lub wyrażeń trójargumentowych.

        • double min(double a, double b)
        • double max(double a, double b)

        Metody występują także w przeciążonych wersjach dla innych typów danych (int, long, float).

        Potęgowanie🔗

        W celu podniesienia liczby do potęgi warto skorzystać z metody pow (skrót od angielskiego power). Przyjmuje ona dwa argumenty - podstawę (liczbę, którą chcemy podnieść do potęgi) i wykładnik potęgi (do której potęgi chcemy podnieść).

          • double pow(double a, double b)

          Pierwiastkowanie🔗

          Klasa Math udostępnia metodę sqrt, która oblicza pierwiastek kwadratowy podanej liczby. Nie istnieje gotowa metoda, która pozwalałaby obliczyć pierwiastki wyższych rzędów.

            • double sqrt(double a)

            Zaokrąglanie🔗

            Niektórzy do zaokrąglenia liczb wykorzystują konwersję zawężającą liczb, np.:

            double a = 5.6;
             int b = (int)a;

            Problem polega na tym, że konwersja taka nie powoduje zaokrąglenia, ale zamiast tego ucięcie części dziesiętnej. W powyższym przykładzie liczba b przyjmie wartość 5, a nie 6.

            Do zaokrąglenia powinniśmy wykorzystywać metodę Math.round, która przyjmuje liczby typu float lub double.

              • double round(double a)

              Przykład🔗

              public class MathExample {
               	public static void main(String[] args) {
               		System.out.println(Math.PI);
               		// 3.141592653589793
               		System.out.println(Math.E);
               		// 2.718281828459045
               		double sin = Math.sin(Math.PI/2);
               		System.out.println(sin);
               		// 1.0
               
               		double a = 5.6;
               		int b = (int) a;
               		long round = Math.round(a);
               		System.out.println(b);
               		// 5
               		System.out.println(round);
               		// 6
               		
               		double minus = -10;
               		double abs = Math.abs(minus);
               		System.out.println(abs);
               		// 10.0
               		
               		double power = Math.pow(2, 4);
               		System.out.println(power);
               		// 16.0 (2^4)
               		System.out.println(Math.sqrt(power));
               		// 4.0 (pierwiastek kwadratowy z 16)
               	}
               }

              Kod na Github.com

              math

              Najlepszy newsletter o Javie w Polsce

              Czy chcesz otrzymywać nowości ze świata Javy oraz przykładowe pytania rekrutacyjne? Zapisz się na newsletter i bądź na bieżąco! Otrzymasz także ekskluzywne materiały oraz informacje o nowych kursach i promocjach.

              Nikomu nie udostępniamy Twojego maila, a jeśli zechcesz to w każdej chwili możesz się wypisać.

              Komentarze do artykułu

              Wyłączyliśmy możliwość dodawania komentarzy. Poniżej znajdziesz archiwalne wpisy z czasów gdy strona była jeszcze hobbystycznym blogiem. Zapraszamy natomiast do zadawnia pytań i dyskusji na naszej grupe na facebooku.