Eine Anleitung zur Java Math Class

Ein Leitfaden für die Java Math Class

1. Einführung

In diesem Lernprogramm beschreiben wir die KlasseMath, die hilfreiche statische Methoden zum Ausführen numerischer Operationen wie Exponential, Logarithmus usw. bietet.

2. Grundlegende mathematische Funktionen

Die ersten Methoden, die wir behandeln werden, sind die grundlegenden mathematischen Funktionen wie der Absolutwert, die Quadratwurzel, das Maximum oder das Minimum zwischen zwei Werten.

2.1. abs()

Die Methodeabs() gibt den absoluten Wert eines bestimmten Werts zurück:

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

Von anderen, die wir als nächstes sehen werden, akzeptiertabs() als Parameter einint, long, float oderdouble und gibt das relative zurück.

2.2. pow()

Berechnet den Wert des ersten Arguments nach dem zweiten Argument und gibt diesen zurück:

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

Wir diskutieren diese Methode ausführlicher inhere.

2.3. sqrt()

Gibt die gerundete positive Quadratwurzel vondouble zurück:

Math.sqrt(25); // returns 5

Wenn das ArgumentNaN oder weniger als Null ist, ist das ErgebnisNaN.

2.4. cbrt()

In ähnlicher Weise gibtcbrt() die Kubikwurzel vondouble zurück:

Math.cbrt(125); // returns 5

2.5. max()

Wie der Name der Methode andeutet, wird das Maximum zwischen zwei Werten zurückgegeben:

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

Auch hier akzeptiert das Verfahrenint, long, float oderdouble.

2.6. min() 

Auf die gleiche Weise gibtmin() das Minimum zwischen zwei Werten zurück:

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

2.7. random()

Gibt ein pseudozufälligesdouble zurück, das größer oder gleich 0,0 und kleiner als 1,0 ist:

double random = Math.random()

Dazuthe method creates a single instance of java.util.Random() number generator when it is called for the first time. 

Danach wird für alle Aufrufe dieser Methode dieselbe Instanz verwendet. Beachten Sie, dass die Methode synchronisiert ist und daher von mehr als einem Thread verwendet werden kann.

Weitere Beispiele zum Generieren eines Zufalls inthis article finden Sie hier.

2.8. signum()

Ist nützlich, wenn wir das Vorzeichen des Wertes kennen müssen:

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

Diese Methode gibt 1.0 zurück, wenn das Argument größer als Null ist, oder -1.0, wenn dies nicht der Fall ist. Wenn das Argument null positiv oder null negativ ist, ist das Ergebnis dasselbe wie das Argument.

Die Eingabe kannfloat oderdouble. sein

2.9. copySign()

Akzeptiert zwei Parameter und gibt das erste Argument mit dem Vorzeichen des zweiten Arguments zurück:

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

Argumente können auchfloat oderdouble. sein

3. Exponentielle und logarithmische Funktionen

Zusätzlich zu den grundlegenden mathematischen Funktionen istthe Math class contains methods to solve exponential and logarithmic functions.

3.1. exp()

Dieexp()-Methode empfängt eindouble-Argument und gibt die Euler-Zahl zurück, die auf die Potenz des Arguments angehoben wird (ex):

Math.exp(1); // returns 2.718281828459045

3.2. expm1()

Ähnlich wie bei der obigen Methode berechnetexpm1() die Euler-Zahl, die auf die Potenz des empfangenen Arguments angehoben wird, addiert jedoch -1 (ex -1):

Math.expm1(1); // returns 1.718281828459045

3.3. log()

Gibt den natürlichen Logarithmus einesdouble-Wertes zurück:

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

3.4. log10()

Es gibt den Logarithmus in Basis 10 des Arguments zurück:

Math.log10(10); // returns 1

3.5. log1p()

Ebenso daslog(), , aber es fügt dem Argument ln (1 + x) 1 hinzu:

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

4. Trigonometrische Funktionen

Wenn wir mit geometrischen Formeln arbeiten müssen, brauchen wir immer trigonometrische Funktionen; Die KlasseMathtellt diese für uns bereit.

4.1. sin()

Erhält ein einzelnesdouble-Argument, das einen Winkel (im Bogenmaß) darstellt und den trigonometrischen Sinus zurückgibt:

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

4.2. cos()

Auf die gleiche Weise gibtcos() den trigonometrischen Kosinus eines Winkels (im Bogenmaß) zurück:

Math.cos(0); // returns 1

4.3. tan()

Liefert den trigonometrischen Tangens eines Winkels (im Bogenmaß):

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

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

Sie geben jeweils den hyperbolischen Sinus, den hyperbolischen Cosinus und den hyperbolischen Tangens mit einem Wert vondoublezurück:

Math.sinh(Math.PI);

Math.cosh(Math.PI);

Math.tanh(Math.PI);

4.5. wie in()

Gibt den Arcussinus des empfangenen Arguments zurück:

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

Das Ergebnis ist ein Winkel im Bereich vonpi / 2 bispi / 2.

4.6. acos()

Gibt den Arkuskosinus des empfangenen Arguments zurück:

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

Das Ergebnis ist ein Winkel im Bereich von 0 bispi.

4.7. atan()

Gibt den Arcustangens des empfangenen Arguments zurück:

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

Das Ergebnis ist ein Winkel im Bereich vonpi / 2 bispi / 2.

4.8. atan2()

Schließlich empfängtatan2() die Ordinatenkoordinatey und die Abszissenkoordinatex, und gibt den Winkelϑ aus der Umwandlung der Rechteckkoordinaten(x,y) in Polarkoordinaten(r, ϑ):

Math.atan2(1,1); // returns pi/4

4.9. toDegrees()

Diese Methode ist nützlich, wenn wir Bogenmaß in Grad umrechnen müssen:

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

4.10. toRadians()

Andererseits isttoRadians() nützlich, um die entgegengesetzte Umwandlung durchzuführen:

Math.toRadians(180); // returns pi

Denken Sie daran, dass die meisten Methoden, die wir in diesem Abschnitt gesehen haben, das Argument im Bogenmaß akzeptieren. Wenn wir also einen Winkel in Grad haben, sollte diese Methode vor der Verwendung einer trigonometrischen Methode verwendet werden.

Weitere Beispiele finden Sie inhere.

5. Rundung und andere Funktionen

Schauen wir uns zum Schluss die Rundungsmethoden an.

5.1. ceil()

ceil() ist hilfreich, wenn wir eine Ganzzahl auf den kleinstendouble-Wert runden müssen, der größer oder gleich dem Argument ist:

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

Inthisarticle verwenden wir diese Methode, um eine Zahl auf die nächsten hundert aufzurunden.

5.2. floor()

Um eine Zahl auf das größtedouble zu runden, das kleiner oder gleich dem Argument ist, sollten wirfloor() verwenden:

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

5.3. getExponent()

Gibt einen unparteiischen Exponenten des Arguments zurück.

Das Argument kanndouble oderfloat sein:

Math.getExponent(333.3); // returns 8

Math.getExponent(222.2f); // returns 7

5.4. IEEEreminder()

Berechnet die Division zwischen dem ersten (Dividende) und dem zweiten (Divisor) Argument und gibt den Rest zurück, wie durchIEEE 754 standard vorgegeben:

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

5.5. nextAfter()

Diese Methode ist nützlich, wenn wir den Nachbarn einesdouble- oder einesfloat-Werts kennen müssen:

Math.nextAfter(1.95f,1); // returns 1.9499999

Math.nextAfter(1.95f,2); // returns 1.9500002

Es akzeptiert zwei Argumente, das erste ist der Wert, dessen benachbarte Zahl Sie kennen möchten, und das zweite ist die Richtung.

5.6. nextUp()

Ebenso die vorherige Methode, aber diese gibt den benachbarten Wert nur in Richtung einer positiven Unendlichkeit zurück:

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

5.7. rint()

Gibt eindouble zurück, das der nächste ganzzahlige Wert des Arguments ist:

Math.rint(1.95f); // returns 2.0

5.8. round()

Entspricht der obigen Methode, aber diese gibt einenint-Wert zurück, wenn das Argumentfloat ist, und einenlong-Wert, wenn das Argumentdouble: ist

int result = Math.round(1.95f); // returns 2

long result2 = Math.round(1.95) // returns 2

5.9. scalb()

Scalb ist eine Abkürzung für "Scale Binary". Diese Funktion führt eine Verschiebung, eine Umwandlung und eine Doppelmultiplikation aus:

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

5.10. ulp()

Die Methodeulp() gibt die Entfernung von einer Zahl zu ihren nächsten Nachbarn zurück:

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

5.11. hypot()

Gibt die Quadratwurzel der Summe der Quadrate seines Arguments zurück:

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

Die Methode berechnet die Quadratwurzel ohne Zwischenüber- oder -unterlauf.

Inthis article verwenden wir diese Methode, um den Abstand zwischen zwei Punkten zu berechnen.

6. Java 8 Math-Funktionen

DieMath -Skala wurde in Java 8 überarbeitet, um neue Methoden zur Ausführung der häufigsten arithmetischen Operationen aufzunehmen.

Wir haben diese Methodenin another article. diskutiert

7. Konstantenfelder

Zusätzlich zu den Methoden deklariertMath class zwei konstante Felder:

public static final double E

public static final double PI

Dies gibt den näheren Wert an der Basis der natürlichen Logarithmen bzw. den näheren Wert anpi an.

8. Fazit

In diesem Artikel haben wir die APIs beschrieben, die Java für mathematische Operationen bereitstellt.

Wie üblich sind alle hier dargestellten Codefragmenteover on GitHub. verfügbar