A Java számos fejlett használati alkalmazással rendelkezik, beleértve a komplex számításokat a fizikában, az építészet / struktúrák tervezését, a Maps és a megfelelő szélességi / hosszúsági stb.
Ebben az oktatóanyagban megtudhatja:
- Math.abs
- Math.forduló
- Math.ceil & Math.floor
- Math.min
Minden ilyen alkalmazás komplex számításokat / egyenleteket igényel, amelyek fárasztóak a manuális végrehajtáshoz. Programszerűen az ilyen számítások magukban foglalnák a logaritmusok, trigonometria, exponenciális egyenletek stb.
Most már nem lehet az összes napló- vagy trigonometriai táblát kemény kódolással az alkalmazásban vagy az adatokban. Az adatokat óriási és bonyolult lenne fenntartani.
A Java nagyon hasznos osztályt nyújt erre a célra. Ez a Math java osztály (java.lang.Math).
Ez az osztály olyan műveletek végrehajtására szolgál, mint az exponenciális, logaritmus, gyökér és trigonometrikus egyenletek.
Vessünk egy pillantást a Java Math osztály által biztosított módszerekre.
A matematika két legalapvetőbb eleme az „e” (a természetes logaritmus alapja) és a „pi” (a kör kerületének és az átmérőjének aránya). Erre a két állandóra gyakran van szükség a fenti számításokban / műveletekben.
Ezért a Math osztály java ezt a két állandót kettős mezőként adja meg.
Math.E - amelynek értéke 2,718281828459045
Math.PI - amelynek értéke a 3,141592653589793
A) Vessünk egy pillantást az alábbi táblázatra, amely bemutatja az Alapvető módszereket és azok leírását
Módszer | Leírás | Érvek |
abs | Az argumentum abszolút értékét adja eredményül | Dupla, úszó, int, hosszú |
kerek | Visszaadja a zárt int vagy long értéket (az argumentumnak megfelelően) | kettős vagy úszó |
mennyezet | Visszaadja a legkisebb egész számot, amely nagyobb vagy egyenlő az argumentummal | Kettős |
padló | Visszaadja a legnagyobb egész számot, amely kisebb vagy egyenlő az argumentummal | Kettős |
min | Visszaadja a legkisebb argumentumot | Dupla, úszó, int, hosszú |
max | Visszaadja a két argumentum közül a legnagyobbat | Dupla, úszó, int, hosszú |
Az alábbiakban bemutatjuk a fenti módszerek kód megvalósítását:
Megjegyzés: Nincs szükség a java.lang.Math kifejezett importálására, mint implicit módon. Minden módszere statikus.
Egész változó
int i1 = 27;int i2 = -45;
Dupla (tizedes) változók
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));}}Kimenet:
Absolute value of i1: 27Absolute value of i2: 45Absolute value of d1: 84.6Absolute value of d2: 0.45
Math.forduló
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));}}Kimenet:
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));}}Kimenet:
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));}}Kimenet:
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) Vessünk egy pillantást az alábbi táblázatra, amely bemutatja az exponenciális és logaritmikus módszereket és azok leírását.
Módszer | Leírás | Érvek |
exp | Visszaadja a természetes log (e) alapját az argumentum erejéig | Kettős |
Napló | Az argumentum természetes naplóját adja eredményül | kettős |
Hadifogoly | 2 argumentumot vesz bemenetként, és az első felvetett argumentum értékét a második argumentum erejéig adja vissza | Kettős |
padló | Visszaadja a legnagyobb egész számot, amely kisebb vagy egyenlő az argumentummal | Kettős |
Sqrt | Az argumentum négyzetgyökét adja eredményül | Kettős |
Az alábbiakban bemutatjuk a fenti módszerek kódmegvalósítását: (ugyanazokat a változókat használjuk, mint fent)
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));}}Kimenet:
exp(0.45) = 1.568312185490169log(0.45) = -0.7985076962177716pow(5, 3) = 125.0sqrt(16) = 4.0
C) Vessünk egy pillantást az alábbi táblázatra, amely bemutatja a trigonometriai módszereket és azok leírását.
Módszer | Leírás | Érvek |
Bűn | Visszaadja a megadott argumentum Szinuszát | Kettős |
Kötözősaláta | A megadott argumentum koszinuszát adja eredményül | kettős |
Cser | Visszaadja a megadott argumentum tangensét | Kettős |
Atan2 | A téglalap alakú koordinátákat (x, y) polárisra (r, theta) alakítja, és thétát ad vissza | Kettős |
fokra | Az argumentumokat fokra konvertálja | Kettős |
Sqrt | Az argumentum négyzetgyökét adja eredményül | Kettős |
radiaknak | Átváltja az argumentumokat radiánokra | Kettős |
Az alapértelmezett érvek radiánban vannak megadva
Az alábbiakban a kód megvalósítása található:
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));}}Kimenet:
sin(30) = 0.49999999999999994cos(30) = 0.8660254037844387tan(30) = 0.5773502691896257Theta = 1.1071487177940904
Most, a fentiekkel, saját tudományos számológépet is megtervezhet Java-ban.