En guide til Java Math Class

1. Introduksjon

I denne opplæringen skal vi beskrive Matte klasse som gir nyttige statiske metoder for å utføre numeriske operasjoner som eksponentiell, logaritme, etc.

2. Grunnleggende matematiske funksjoner

Det første settet med metoder vi skal dekke er de grunnleggende matematiske funksjonene som absolutt verdi, kvadratrot, maksimum eller minimum mellom to verdier.

2.1. abs ()

De abs () metoden returnerer den absolutte verdien av en gitt verdi:

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

Likeledes av andre som vi får se neste, abs () aksepterer som parameter an int, lang, flyte eller dobbelt og returnerer den relative.

2.2. pow ()

Beregner og returnerer verdien av det første argumentet som er hevet til kraften til det andre:

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

Vi diskuterer denne metoden mer detaljert her.

2.3. sqrt ()

Returnerer den avrundede positive kvadratroten til a dobbelt:

Math.sqrt (25); // returnerer 5

Hvis argumentet er det NaN eller mindre enn null, er resultatet NaN.

2.4. cbrt ()

På samme måte, cbrt () returnerer terningroten til a dobbelt:

Math.cbrt (125); // returnerer 5

2.5. maks ()

Som metodens navn antyder, returnerer det maksimalt mellom to verdier:

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

Også her godtar metoden int, lang, flyte eller dobbelt.

2.6. min ()

På samme måten, min () returnerer minimumet mellom to verdier:

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

2.7. tilfeldig()

Returnerer en pseudorandomly dobbelt større enn eller lik 0,0 og mindre enn 1,0:

dobbelt tilfeldig = Math.random ()

Å gjøre dette, metoden skaper en enkelt forekomst av java.util.Random () nummergenerator når det kalles for første gang.

Deretter brukes den samme forekomsten for alle anrop til denne metoden. Merk at metoden er synkronisert, og kan dermed brukes av mer enn en tråd.

Vi kan finne flere eksempler på hvordan du genererer en tilfeldig i denne artikkelen.

2.8. signum ()

Er nyttig når vi må vite verdienes tegn:

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

Denne metoden returnerer 1.0 hvis argumentet ellers er større enn null eller -1,0. Hvis argumentet er null positivt eller null negativt, er resultatet det samme som argumentet.

Inngangen kan være en flyte eller a dobbelt.

2.9. copySign ()

Aksepterer to parametere og returnerer det første argumentet med tegnet på det andre argumentet:

Math.copySign (5, -1); // returnerer -5

Argumenter kan også være flyte eller dobbelt.

3. Eksponensielle og logaritmiske funksjoner

I tillegg til de grunnleggende matematiske funksjonene, de Matte klasse inneholder metoder for å løse eksponensielle og logaritmiske funksjoner.

3.1. exp ()

De exp () metoden mottar en dobbelt argumentet og returnerer Eulers antall hevet til argumentets makt (ex):

Math.exp (1); // returnerer 2.718281828459045

3.2. expm1 ()

I likhet med metoden ovenfor, expm1 () beregner nummeret til Euler som er hevet i kraft av mottatt argument, men det legger til -1 (ex -1):

Matematikk.expm1 (1); // returnerer 1.718281828459045

3.3. Logg()

Returnerer den naturlige logaritmen til a dobbelt verdi:

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

3.4. log10 ()

Den returnerer logaritmen i argumentets base 10:

Math.log10 (10); // returnerer 1

3.5. log1p ()

Likeledes Logg(), men det legger 1 til argumentet ln (1 + x):

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

4. Trigonometriske funksjoner

Når vi må jobbe med geometriske formler, trenger vi alltid trigonometriske funksjoner; de Matte klassen gir disse for oss.

4.1. synd()

Mottar en singel, dobbelt argument som representerer en vinkel (i radianer) og returnerer trigonometrisk sinus:

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

4.2. cos ()

På samme måten, cos () returnerer den trigonometriske cosinusen til en vinkel (i radianer):

Math.cos (0); // returnerer 1

4.3. tan ()

Returnerer den trigonometriske tangenten til en vinkel (i radianer):

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

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

De returnerer henholdsvis den hyperbolske sinus, hyperbolske cosinus og hyperbolske tangens til a dobbelt verdi:

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

4.5. som i()

Returnerer buesinusen for mottatt argument:

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

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

4.6. acos ()

Returnerer lysbue-cosinus for mottatt argument:

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

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

4.7. brunfarge()

Returnerer buetangens for mottatt argument:

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

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

4.8. atan2 ()

Endelig, atan2 () mottar ordinatkoordinaten y og abscissakoordinaten x, og returnerer vinkelen ϑ fra konvertering av rektangulære koordinater (x, y) til polarkoordinater (r, ϑ):

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

4.9. toDegrees ()

Denne metoden er nyttig når vi trenger å konvertere radianer til grader:

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

4.10. toRadians ()

På den andre siden toRadians () er nyttig for å gjøre motsatt konvertering:

Math.toRadians (180); // returnerer pi

Husk at de fleste metodene vi har sett i dette avsnittet godtar argumentet i radianer, og når vi har en vinkel i grader, bør denne metoden brukes før du bruker en trigonometrisk metode.

For flere eksempler, se her inne.

5. Avrunding og andre funksjoner

Til slutt, la oss ta en titt på avrundingsmetoder.

5.1. tak ()

tak () er nyttig når vi må avrunde et heltall til det minste dobbelt verdi som er større enn eller lik argumentet:

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

I denne artikkelen bruker vi denne metoden for å avrunde et tall til nærmeste hundre.

5.2. gulv()

Å runde et tall til det største dobbelt det er mindre enn eller lik argumentet vi skal bruke gulv():

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

5.3. getExponent ()

Returnerer en upartisk eksponent av argumentet.

Argumentet kan være en dobbelt eller a flyte:

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

5.4. IEEEreminder ()

Beregner skillet mellom det første (utbyttet) og det andre (deleren) argumentet og returnerer resten som foreskrevet av IEEE 754-standarden:

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

5.5. nextAfter ()

Denne metoden er nyttig når vi trenger å kjenne naboene til a dobbelt eller a flyte verdi:

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

Den aksepterer to argumenter, det første er verdien du vil vite det tilstøtende nummeret, og det andre er retningen.

5.6. neste()

På samme måte den forrige metoden, men denne returnerer den tilstøtende verdien bare i retning av en positiv uendelig:

Math.nextUp (1.95f); // returnerer 1,9500002

5.7. rint ()

Returnerer a dobbelt det er den nærmeste heltallverdien av argumentet:

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

5.8. rund()

I likhet med metoden ovenfor, men denne returnerer en int verdi hvis argumentet er a flyte og en lang verdi hvis argumentet er a dobbelt:

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

5.9. hodebunn ()

Scalb er en forkortelse for en "skala binær". Denne funksjonen utfører ett skift, en konvertering og en dobbel multiplikasjon:

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

5.10. ulp ()

De ulp () metoden returnerer avstanden fra et tall til nærmeste naboer:

Math.ulp (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 kvadratroten til summen av kvadrater av argumentet:

Math.hypot (4, 3); // returnerer 5

Metoden beregner kvadratroten uten mellomoverflyt eller understrøm.

I denne artikkelen bruker vi denne metoden til å beregne avstanden mellom to punkter.

6. Java 8 matematiske funksjoner

De Matte klasse har blitt revidert i Java 8 for å inkludere nye metoder for å utføre de vanligste aritmetiske operasjonene.

Vi diskuterte disse metodene i en annen artikkel.

7. Konstantfelt

I tillegg til metodene, Matte klasse erklærer to konstante felt:

offentlig statisk endelig dobbel E offentlig statisk slutt dobbel PI

Som indikerer den nærmere verdien til basen av de naturlige logaritmene, og den nærmere verdien til pi, henholdsvis.

8. Konklusjon

I denne artikkelen har vi beskrevet APIene som Java gir for matematiske operasjoner.

Som vanlig er alle kodebiter presentert her tilgjengelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found