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

Dyskusja i komentarze

Masz pytania do tego wpisu? Może chcesz się podzielić spostrzeżeniami? Zapraszamy dyskusji na naszej grupie na Facebooku.