Klasa Math
Spis treści
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.
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
Dyskusja i komentarze
Masz pytania do tego wpisu? Może chcesz się podzielić spostrzeżeniami? Zapraszamy dyskusji na naszej grupie na Facebooku.