Java je imela več naprednih aplikacij za uporabo, vključno z delom s kompleksnimi izračuni v fiziki, arhitekturi / oblikovanju struktur, delom z zemljevidi in ustreznimi zemljepisnimi širinami / dolžinami itd.
V tej vadnici boste izvedeli:
- Math.abs
- Matematika.okrog
- Math.ceil & Math.floor
- Math.min
Vse take aplikacije zahtevajo uporabo zapletenih izračunov / enačb, ki jih je dolgočasno izvajati ročno. Programsko bi takšni izračuni vključevali uporabo logaritmov, trigonometrije, eksponentnih enačb itd.
Zdaj ne morete imeti vseh tabel dnevnikov ali trigonometrije trdo kodiranih nekje v vaši aplikaciji ali podatkih. Podatkov bi bilo ogromno in zapletenih za vzdrževanje.
Java ponuja v ta namen zelo uporaben razred. To je razred matematike java (java.lang.Math).
Ta razred ponuja metode za izvajanje operacij, kot so eksponentne, logaritemske, koreninske in trigonometrične enačbe.
Oglejmo si metode, ki jih ponuja razred Java Math.
Dva najbolj temeljna elementa v matematiki sta 'e' (osnova naravnega logaritma) in 'pi' (razmerje med obsegom kroga in njegovim premerom). Ti dve konstanti sta pogosto potrebni v zgornjih izračunih / operacijah.
Zato java razreda Math ponuja ti dve konstanti kot dvojni polji.
Math.E - vrednost 2,718281828459045
Math.PI - ima vrednost 3,141592653589793
A) Oglejmo si spodnjo tabelo, ki prikazuje osnovne metode in njihov opis
Metoda | Opis | Argumenti |
abs | Vrne absolutno vrednost argumenta | Dvojno, plavajoče, int, dolgo |
okrogla | Vrne zaprto int ali long (glede na argument) | dvojno ali plavajoče |
strop | Vrne najmanjše celo število, ki je večje ali enako argumentu | Dvojno |
nadstropje | Vrne največje celo število, ki je manjše ali enako argumentu | Dvojno |
min | Vrne najmanjši od obeh argumentov | Dvojno, plavajoče, int, dolgo |
maks | Vrne največjega od obeh argumentov | Dvojno, plavajoče, int, dolgo |
Spodaj je izvedba kode zgornjih metod:
Opomba: java.lang.Math ni treba izrecno uvoziti kot implicitno uvožen. Vse metode so statične.
Celoštevilčna spremenljivka
int i1 = 27;int i2 = -45;
Dvojne (decimalne) spremenljivke
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));}}Izhod:
Absolute value of i1: 27Absolute value of i2: 45Absolute value of d1: 84.6Absolute value of d2: 0.45
Matematika.okrog
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));}}Izhod:
Round off for d1: 85Round off for d2: 0
Math.ceil & 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));}}Izhod:
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));}}Izhod:
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) Oglejmo si spodnjo tabelo, ki prikazuje eksponentne in logaritemske metode ter njihov opis -
Metoda | Opis | Argumenti |
exp | Vrne osnovo naravnega dnevnika (e) v moč argumenta | Dvojno |
Dnevnik | Vrne naravni dnevnik argumenta | dvojno |
Pow | Za vhod vzame dva argumenta in vrne vrednost prvega argumenta v drugo stopnjo | Dvojno |
nadstropje | Vrne največje celo število, ki je manjše ali enako argumentu | Dvojno |
Sqrt | Vrne kvadratni koren argumenta | Dvojno |
Spodaj je izvedba kode zgornjih metod: (Uporabljene so enake spremenljivke kot zgoraj)
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));}}Izhod:
exp(0.45) = 1.568312185490169log(0.45) = -0.7985076962177716pow(5, 3) = 125.0sqrt(16) = 4.0
C) Oglejmo si spodnjo tabelo, ki prikazuje trigonometrične metode in njihov opis -
Metoda | Opis | Argumenti |
Greh | Vrne sinus določenega argumenta | Dvojno |
Cos | Vrne kosinus podanega argumenta | dvojno |
Tan | Vrne tangento podanega argumenta | Dvojno |
Atan2 | Pretvori pravokotne koordinate (x, y) v polarne (r, theta) in vrne theta | Dvojno |
do stopinj | Pretvori argumente v stopinje | Dvojno |
Sqrt | Vrne kvadratni koren argumenta | Dvojno |
toRadians | Pretvori argumente v radiane | Dvojno |
Privzeti argumenti so v radianih
Spodaj je izvedba kode:
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));}}Izhod:
sin(30) = 0.49999999999999994cos(30) = 0.8660254037844387tan(30) = 0.5773502691896257Theta = 1.1071487177940904
Zdaj lahko z zgoraj navedenim v javi oblikujete tudi svoj znanstveni kalkulator.