En guide til Java Math Class

1. Introduktion

I denne vejledning skal vi beskrive Matematik klasse, der giver nyttige statiske metoder til udførelse af numeriske operationer såsom eksponentiel, logaritme osv.

2. Grundlæggende matematiske funktioner

Det første sæt metoder, vi dækker, er de grundlæggende matematiske funktioner såsom den absolutte værdi, kvadratroden, det maksimale eller minimumet mellem to værdier.

2.1. abs ()

Det abs () metode returnerer den absolutte værdi af en given værdi:

Math.abs (-5); // returnerer 5

Ligeledes af andre, som vi ser næste, abs () accepterer som parameter en int, lang, flyde eller dobbelt og returnerer den relative.

2.2. pow ()

Beregner og returnerer værdien af ​​det første argument hævet til styrken for det andet:

Math.pow (5,2); // returnerer 25

Vi diskuterer denne metode mere detaljeret her.

2.3. sqrt ()

Returnerer den afrundede positive kvadratrod af a dobbelt:

Math.sqrt (25); // returnerer 5

Hvis argumentet er NaN eller mindre end nul, er resultatet NaN.

2.4. cbrt ()

Tilsvarende cbrt () returnerer terningen af ​​en dobbelt:

Math.cbrt (125); // returnerer 5

2.5. maks ()

Som metodens navn antyder, returnerer det maksimalt mellem to værdier:

Math.max (5,10); // returnerer 10

Også her accepterer metoden int, lang, flyde eller dobbelt.

2.6. min ()

På samme måde, min () returnerer minimumet mellem to værdier:

Math.min (5,10); // returnerer 5

2.7. tilfældig()

Returnerer et pseudorandomly dobbelt større end eller lig med 0,0 og mindre end 1,0:

dobbelt tilfældig = Math.random ()

At gøre dette, metoden opretter en enkelt forekomst af java.util.Random () nummergenerator, når det kaldes for første gang.

Derefter bruges den samme forekomst til alle opkald til denne metode. Bemærk, at metoden er synkroniseret og dermed kan bruges af mere end en tråd.

Vi kan finde flere eksempler på, hvordan man genererer en tilfældig i denne artikel.

2.8. signum ()

Er nyttigt, når vi skal kende værdiets tegn:

Math.signum (-5) // returnerer -1

Denne metode returnerer 1.0, hvis argumentet ellers er større end nul eller -1,0. Hvis argumentet er nul positivt eller nul negativt, er resultatet det samme som argumentet.

Indgangen kan være en flyde eller a dobbelt.

2.9. copySign ()

Accepterer to parametre og returnerer det første argument med tegnet på det andet argument:

Math.copySign (5, -1); // vender tilbage -5

Argumenter kan også være flyde eller dobbelt.

3. Eksponentielle og logaritmiske funktioner

Ud over de grundlæggende matematiske funktioner, det Matematik klasse indeholder metoder til løsning af eksponentielle og logaritmiske funktioner.

3.1. exp ()

Det exp () metoden modtager en dobbelt argument og returnerer Eulers nummer hævet til argumentets magt (ex):

Math.exp (1); // returnerer 2.718281828459045

3.2. expm1 ()

Svarende til ovenstående metode, expm1 () beregner Eulers nummer hævet til styrken i det modtagne argument, men det tilføjer -1 (ex -1):

Matematik.expm1 (1); // returnerer 1.718281828459045

3.3. log ()

Returnerer den naturlige logaritme af a dobbelt værdi:

Math.log (Math.E); // returnerer 1

3.4. log10 ()

Det returnerer logaritmen i argumentets base 10:

Math.log10 (10); // returnerer 1

3.5. log1p ()

Ligeledes log (), men det tilføjer 1 til argumentet ln (1 + x):

Math.log1p (Math.E); // returnerer 1.3132616875182228

4. Trigonometriske funktioner

Når vi skal arbejde med geometriske formler, har vi altid brug for trigonometriske funktioner; det Matematik klasse giver disse til os.

4.1. synd()

Modtager en enkelt, dobbelt argument, der repræsenterer en vinkel (i radianer) og returnerer den trigonometriske sinus:

Math.sin (Math.PI / 2); // returnerer 1

4.2. cos ()

På samme måde, cos () returnerer den trigonometriske cosinus for en vinkel (i radianer):

Math.cos (0); // returnerer 1

4.3. tan ()

Returnerer den trigonometriske tangens for en vinkel (i radianer):

Math.tan (Math.PI / 4); // returnerer 1

4.4. sinh (), cosh (), tanh ()

De returnerer henholdsvis den hyperbolske sinus, den hyperbolske cosinus og den hyperbolske tangens af a dobbelt værdi:

Math.sinh (Math.PI); Math.cosh (Math.PI); Math.tanh (Math.PI);

4.5. som i()

Returnerer bue sinus for det modtagne argument:

Matematik.asin (1); // returnerer pi / 2

Resultatet er en vinkel i området -pi/ 2 til pi/2.

4.6. acos ()

Returnerer lysbueskosinus for det modtagne argument:

Math.acos (0); // returnerer pi / 2

Resultatet er en vinkel i området 0 til pi.

4.7. solbrændt()

Returnerer buetangens for det modtagne argument:

Matematik.atan (1); // returnerer pi / 4

Resultatet er en vinkel i området -pi/ 2 til pi/2.

4.8. atan2 ()

Langt om længe, atan2 () modtager ordinatkoordinaten y og abscissakoordinaten x, og returnerer vinklen ϑ fra konvertering af rektangulære koordinater (x, y) til polære koordinater (r, ϑ):

Matematik.atan2 (1,1); // returnerer pi / 4

4.9. toDegrees ()

Denne metode er nyttig, når vi har brug for at konvertere radianer til grader:

Math.toDegrees (Math.PI); // returnerer 180

4.10. toRadians ()

På den anden side toRadians () er nyttigt at udføre den modsatte konvertering:

Math.toRadians (180); // returnerer pi

Husk, at de fleste af de metoder, vi har set i dette afsnit, accepterer argumentet i radianer, og derfor, når vi har en vinkel i grader, skal denne metode bruges, før du bruger en trigonometrisk metode.

For flere eksempler, se herinde.

5. Afrunding og andre funktioner

Lad os endelig se på afrundingsmetoder.

5.1. loft ()

loft () er nyttigt, når vi skal afrunde et heltal til det mindste dobbelt værdi, der er større end eller lig med argumentet:

Math.ceil (Math.PI); // returnerer 4

I denne artikel bruger vi denne metode til at afrunde et tal til nærmeste hundrede.

5.2. etage()

At afrunde et tal til det største dobbelt det er mindre end eller lig med det argument, vi skal bruge etage():

Math. etage (Math.PI); // returnerer 3

5.3. getExponent ()

Returnerer en upartisk eksponent for argumentet.

Argumentet kan være en dobbelt eller a flyde:

Math.getExponent (333.3); // returnerer 8 Math.getExponent (222.2f); // returnerer 7

5.4. IEEEreminder ()

Beregner opdelingen mellem det første (udbytte) og det andet (divisor) argument og returnerer resten som foreskrevet af IEEE 754-standarden:

Math.IEEEremainder (5,2); // returnerer 1

5.5. nextAfter ()

Denne metode er nyttig, når vi har brug for at kende nabo til a dobbelt eller a flyde værdi:

Math.nextAfter (1.95f, 1); // returnerer 1.9499999 Math.nextAfter (1.95f, 2); // returnerer 1.9500002

Det accepterer to argumenter, det første er den værdi, som du vil vide det tilstødende nummer, og det andet er retningen.

5.6. næste op ()

Ligeledes den foregående metode, men denne returnerer kun den tilstødende værdi i retning af en positiv uendelighed:

Math.nextUp (1.95f); // returnerer 1.9500002

5.7. rint ()

Returnerer a dobbelt det er den nærmeste heltalværdi af argumentet:

Math.print (1.95f); // returnerer 2.0

5.8. rund()

Ligesom ovenstående metode, men denne returnerer en int værdi, hvis argumentet er a flyde og en lang værdi, hvis argumentet er a dobbelt:

int resultat = Math.round (1.95f); // returnerer 2 langt resultat2 = Math.round (1.95) // returnerer 2

5.9. hovedbund ()

Scalb er en forkortelse for en "skala binær". Denne funktion udfører et skift, en konvertering og en dobbelt multiplikation:

Math.scalb (3, 4); // returnerer 3 * 2 ^ 4

5.10. ulp ()

Det ulp () metoden returnerer afstanden fra et tal til sine nærmeste naboer:

Matematikmasse (1); // returnerer 1.1920929E-7 Math.ulp (2); // returnerer 2.3841858E-7 Math.ulp (4); // returnerer 4.7683716E-7 Math.ulp (8); // returnerer 9.536743E-7

5.11. hypot ()

Returnerer kvadratroden af ​​summen af ​​kvadraterne i sit argument:

Matematikhypot (4, 3); // returnerer 5

Metoden beregner kvadratroden uden mellemliggende overløb eller underløb.

I denne artikel bruger vi denne metode til at beregne afstanden mellem to punkter.

6. Java 8 matematiske funktioner

Det Matematik klasse er blevet revideret i Java 8 for at inkludere nye metoder til at udføre de mest almindelige aritmetiske operationer.

Vi diskuterede disse metoder i en anden artikel.

7. Konstantfelter

Ud over metoderne, Matematik klasse erklærer to konstante felter:

offentlig statisk endelig dobbelt E offentlig statisk endelig dobbelt PI

Hvilket angiver den nærmere værdi til basen af ​​de naturlige logaritmer og den tættere værdi til pi, henholdsvis.

8. Konklusion

I denne artikel har vi beskrevet de API'er, som Java giver til matematiske operationer.

Som sædvanligt er alle kodestykker, der præsenteres her, tilgængelige på GitHub.