Java ma kilka zaawansowanych aplikacji użytkowych, w tym do pracy ze złożonymi obliczeniami w fizyce, architekturze / projektowaniu konstrukcji, pracy z mapami i odpowiadającymi im szerokościami / długościami geograficznymi itp.
W tym samouczku dowiesz się:
- Math.abs
- Math.round
- Math.ceil i Math.floor
- Math.min
Wszystkie takie aplikacje wymagają stosowania skomplikowanych obliczeń / równań, których ręczne wykonywanie jest żmudne. Programowo takie obliczenia wymagałyby użycia logarytmów, trygonometrii, równań wykładniczych itp.
Teraz nie możesz mieć wszystkich tabel dziennika lub trygonometrii na stałe zakodowanych gdzieś w aplikacji lub danych. Dane byłyby ogromne i skomplikowane w utrzymaniu.
W tym celu Java udostępnia bardzo przydatną klasę. Jest to klasa Math Java (java.lang.Math).
Ta klasa zapewnia metody wykonywania operacji, takich jak wykładnicze, logarytmiczne, pierwiastki i równania trygonometryczne.
Przyjrzyjmy się metodom udostępnianym przez klasę Java Math.
Dwa najbardziej podstawowe elementy matematyki to „e” (podstawa logarytmu naturalnego) i „pi” (stosunek obwodu koła do jego średnicy). Te dwie stałe są często wymagane w powyższych obliczeniach / operacjach.
Stąd klasa Math, java, udostępnia te dwie stałe jako podwójne pola.
Math.E - o wartości 2,718281828459045
Math.PI - o wartości 3,141592653589793
A) Spójrzmy na poniższą tabelę, która przedstawia podstawowe metody i ich opis
metoda | Opis | Argumenty |
abs | Zwraca wartość bezwzględną argumentu | Double, float, int, long |
okrągły | Zwraca zamknięte int lub long (zgodnie z argumentem) | double lub float |
stropować | Zwraca najmniejszą liczbę całkowitą większą lub równą argumentowi | Podwójnie |
podłoga | Zwraca największą liczbę całkowitą mniejszą lub równą argumentowi | Podwójnie |
min | Zwraca najmniejszy z dwóch argumentów | Double, float, int, long |
max | Zwraca największy z dwóch argumentów | Double, float, int, long |
Poniżej znajduje się implementacja kodu powyższych metod:
Uwaga: nie ma potrzeby jawnego importowania java.lang.Math jako niejawnego importu. Wszystkie jego metody są statyczne.
Zmienna całkowita
int i1 = 27;int i2 = -45;
Zmienne podwójne (dziesiętne)
double d1 = 84.6;double d2 = 0.45;
Math.abs
public class Guru99 {public static void main(String args[]) {int i1 = 27;int i2 = -45;double d1 = 84.6;double d2 = 0.45;System.out.println("Absolute value of i1: " + Math.abs(i1));System.out.println("Absolute value of i2: " + Math.abs(i2));System.out.println("Absolute value of d1: " + Math.abs(d1));System.out.println("Absolute value of d2: " + Math.abs(d2));}}Wynik:
Absolute value of i1: 27Absolute value of i2: 45Absolute value of d1: 84.6Absolute value of d2: 0.45
Math.round
public class Guru99 {public static void main(String args[]) {double d1 = 84.6;double d2 = 0.45;System.out.println("Round off for d1: " + Math.round(d1));System.out.println("Round off for d2: " + Math.round(d2));}}Wynik:
Round off for d1: 85Round off for d2: 0
Math.ceil i Math.floor
public class Guru99 {public static void main(String args[]) {double d1 = 84.6;double d2 = 0.45;System.out.println("Ceiling of '" + d1 + "' = " + Math.ceil(d1));System.out.println("Floor of '" + d1 + "' = " + Math.floor(d1));System.out.println("Ceiling of '" + d2 + "' = " + Math.ceil(d2));System.out.println("Floor of '" + d2 + "' = " + Math.floor(d2));}}Wynik:
Ceiling of '84.6' = 85.0Floor of '84.6' = 84.0Ceiling of '0.45' = 1.0Floor of '0.45' = 0.0
Math.min
public class Guru99 {public static void main(String args[]) {int i1 = 27;int i2 = -45;double d1 = 84.6;double d2 = 0.45;System.out.println("Minimum out of '" + i1 + "' and '" + i2 + "' = " + Math.min(i1, i2));System.out.println("Maximum out of '" + i1 + "' and '" + i2 + "' = " + Math.max(i1, i2));System.out.println("Minimum out of '" + d1 + "' and '" + d2 + "' = " + Math.min(d1, d2));System.out.println("Maximum out of '" + d1 + "' and '" + d2 + "' = " + Math.max(d1, d2));}}Wynik:
Minimum out of '27' and '-45' = -45Maximum out of '27' and '-45' = 27Minimum out of '84.6' and '0.45' = 0.45Maximum out of '84.6' and '0.45' = 84.6
B) Spójrzmy na poniższą tabelę, która pokazuje nam metody wykładnicze i logarytmiczne oraz ich opis:
metoda | Opis | Argumenty |
exp | Zwraca podstawę logarytmu naturalnego (e) do potęgi argumentu | Podwójnie |
Log | Zwraca logarytm naturalny argumentu | podwójnie |
Pow | Przyjmuje 2 argumenty jako dane wejściowe i zwraca wartość pierwszego argumentu podniesionego do potęgi drugiego argumentu | Podwójnie |
podłoga | Zwraca największą liczbę całkowitą mniejszą lub równą argumentowi | Podwójnie |
Sqrt | Zwraca pierwiastek kwadratowy z argumentu | Podwójnie |
Poniżej znajduje się implementacja kodu powyższych metod: (Używane są te same zmienne, co powyżej)
public class Guru99 {public static void main(String args[]) {double d1 = 84.6;double d2 = 0.45;System.out.println("exp(" + d2 + ") = " + Math.exp(d2));System.out.println("log(" + d2 + ") = " + Math.log(d2));System.out.println("pow(5, 3) = " + Math.pow(5.0, 3.0));System.out.println("sqrt(16) = " + Math.sqrt(16));}}Wynik:
exp(0.45) = 1.568312185490169log(0.45) = -0.7985076962177716pow(5, 3) = 125.0sqrt(16) = 4.0
C) Spójrzmy na poniższą tabelę, która pokazuje nam metody trygonometryczne i ich opis-
metoda | Opis | Argumenty |
Grzech | Zwraca sinus dla określonego argumentu | Podwójnie |
Sałata | Zwraca cosinus dla określonego argumentu | podwójnie |
Dębnik | Zwraca styczną określonego argumentu | Podwójnie |
Atan2 | Konwertuje współrzędne prostokątne (x, y) na biegunowe (r, theta) i zwraca theta | Podwójnie |
toDegrees | Konwertuje argumenty na stopnie | Podwójnie |
Sqrt | Zwraca pierwiastek kwadratowy z argumentu | Podwójnie |
toRadians | Konwertuje argumenty na radiany | Podwójnie |
Domyślne argumenty są w radianach
Poniżej znajduje się implementacja kodu:
public class Guru99 {public static void main(String args[]) {double angle_30 = 30.0;double radian_30 = Math.toRadians(angle_30);System.out.println("sin(30) = " + Math.sin(radian_30));System.out.println("cos(30) = " + Math.cos(radian_30));System.out.println("tan(30) = " + Math.tan(radian_30));System.out.println("Theta = " + Math.atan2(4, 2));}}Wynik:
sin(30) = 0.49999999999999994cos(30) = 0.8660254037844387tan(30) = 0.5773502691896257Theta = 1.1071487177940904
Teraz, dzięki powyższemu, możesz również zaprojektować swój własny kalkulator naukowy w Javie.