Darmowy kurs Java

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 Programowania 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

                  Zapisz się do newslettera

                  Otrzymuj nasz Newsletter z przykładowymi pytaniami rekrutacyjnymi, wyzwaniami programistycznymi i nowościami ze świata Javy, a także informacje o nowych kursach i promocjach.

                  Traktujemy Twoją prywatność poważnie. Nikomu nie udostępniamy Twojego maila no i zawsze 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.

                  Szkolenie Java Wrocław