CodeGym /Java-Blog /Germany /Math.pow() in Java
Autor
Artem Divertitto
Senior Android Developer at United Tech

Math.pow() in Java

Veröffentlicht in der Gruppe Germany
Die Sprache Java ist mit einer umfangreichen Bibliothek für mathematische Funktionen und Operationen ausgestattet. Diese heißt „Math“ und befindet sich im Paket java.lang. Die Math-Bibliothek enthält neben Math.pow Methoden für grundlegende numerische Operationen, Trigonometrie, Min-Max-Suche, Generierung von Zufallszahlen und logarithmische Operationen. In der heutigen Übung konzentrieren wir uns auf die Methode Math.pow(), die zur Berechnung von Potenzen von Zahlen unter Verwendung einer Basis und eines Exponenten verwendet wird. Los geht‘s. Der Ausdruck „n-te Potenz von a“ kann mathematisch als an geschrieben werden. Wir können die Begriffe in den Ausdrücken wie folgt definieren. a - Basis n - Exponent. Betrachten wir den Exponenten. Wir können ihn als die Anzahl der Wiederholungen einer Multiplikationsoperation betrachten. Die Basis ist die Zahl, die mit sich selbst multipliziert wird.Math.pow() in Java - 1Erstellen wir einmal eine einfache Java-Methode, um die Potenz einer Zahl zu berechnen. Bitte beachte, dass wir im folgenden Beispiel zwei Argumente an die Methode powerFunction() übergeben, nämlich die Basis und den Exponenten.

public class Main {
 
   public static void main(String[] args) {
       int result = powerFunction(2, 5);
       System.out.println("2 raised to the power of 5 = " + result);
   }
 
   static int powerFunction(int base, int exponent) {
       int result = 1;
       for (int i = 0; i < exponent; i++) {
           result = base * result;
       }
       return result;
   }
}
Wenn wir den obigen Beispielcode ausführen, erhalten wir das Ergebnis 32. Du fragst dich jetzt vielleicht, warum wir nicht einfach Basis^Exponent schreiben können. Das können wir nicht, weil Java keinen Potenzierungsoperator besitzt, den wir in einer einzigen Codezeile verwenden könnten. Wenn man den obigen Code betrachtet, ist es offensichtlich, dass wir ziemlich viel Zeit aufwenden mussten, um diese Methode zu schreiben. Wenn wir außerdem hohe Potenzen berechnen wollen, benötigt die Methode eine beträchtliche Zeit, um diese Berechnungen durchzuführen, da wir for-Schleifen verwenden. Darüber hinaus verhindern Schleifen, dass wir Potenzberechnungen mit gebrochenen Exponenten durchführen können. Und diese Methode hat keine gute Berechnungskomplexität, denn es gibt noch mehr Raum für Optimierungen. In Anbetracht der Tatsache, wie häufig die Potenzierung und andere mathematische Operationen von Programmierern verwendet werden, haben die Java-Entwickler seinerzeit eine Bibliothek namens „Math“ geschaffen, die mathematische Operationen einfacher und effizienter macht. Anstatt also eine Potenzfunktion von Grund auf neu zu schreiben, können wir die Vorteile dieser Bibliothek nutzen, die im Paket java.lang enthalten ist.

Was ist die Methode Math.pow und wie wird sie verwendet?

Math.pow ist im Paket java.lang als Methode der Math-Bibliothek zu finden. Es wird verwendet, um die Potenz von Zahlen zu berechnen, und das sowohl von ganzen als auch von reellen Zahlen. Was heißt „pow“? „pow“ steht für „Power“, also Potenz. Schauen wir uns einmal die Syntax an.

public static double pow(double base, double exponent)
Wie wir in der Syntax sehen können, nimmt die Methode java.lang.Math.pow() zwei Argumente entgegen. Das erste ist die Basis und das zweite ist der Exponent. Die Methode gibt BasisExponent als Ausgabe zurück. Schauen wir mal, wie wir sie aufrufen können.

Potenzen mit Math.pow in Java berechnen

Wir wollen den Wert von 54 mit Math.pow ermitteln.

import java.lang.Math;
public class MyClass{
    public static void main(String []args){
       double answer = Math.pow(5, 4);
// java.lang.Math.pow() method
 
       System.out.println("5 raised to the power of 4 = " + answer);
    }    
}
Die Ausgabe ist 625.0. Wie du siehst, handelt es sich um einen double-Wert. Wenn dich der Dezimalpunkt stört, können wir ihn schnell loswerden, indem wir die Zahl wie folgt in eine ganze Zahl umwandeln. Beachte, dass wir die erste Zeile innerhalb der main-Methode ändern.

 int answer = (int) Math.pow(5, 4);
Jetzt ist das Ergebnis 625. Jetzt wollen wir Bruchzahlen sowohl für die Basis als auch für den Exponenten verwenden und sehen, welches Ergebnis wir erhalten. Schauen wir mal, was der Wert von 1,254,5 ist.

import java.lang.Math;
 
public class MyClass {
 
   public static void main(String[] args) {
       double answer = Math.pow(1.25, 4.5);
// java.lang.Math.pow() method
 
       System.out.println("1.25 raised to the power of 4.5 = " + answer);
   }
}
Dies würde 2.729575167846423 ausgeben. Mit einem Taschenrechner kannst du feststellen, dass das Ergebnis stimmt. Wir wollen uns noch ein Beispiel ansehen, bevor wir zum nächsten Abschnitt kommen. Diesmal verwenden wir einen negativen Exponenten und vergleichen die Ergebnisse. Für dieses Beispiel werden wir 4 als Basis und -2 als Exponent wählen.

import java.lang.Math;
 
public class MyClass{
 
     public static void main(String []args){
        double answer = Math.pow(4, -2);
// java.lang.Math.pow() method
 
        System.out.println(answer);
     }    
}
Wir erhalten die Ausgabe 0.0625.

Kurzes Beispiel: So runden Sie Ihr Ergebnis

Sagen wir, wir müssen den Wert von 1.254.5 finden. Die Antwort ist 2.729575167846423. In vielen Fällen müssen wir das Ergebnis runden. Versuchen wir, ein auf die vierte Nachkommastelle genaues Ergebnis zu erhalten. Wie macht man das? Was machen wir, wenn wir nur die ersten 4 Dezimalstellen benötigen? Wir können dafür die Methode java.lang.Math.round verwenden. Da Math.round den Wert jedoch auf die nächste Ganzzahl rundet, müssen wir ihn mit der Anzahl der Nachkommastellen multiplizieren und dann erneut runden und dividieren.

import java.lang.Math;
 
public class MyClass{
 
     public static void main(String []args){
        double answer = Math.pow(1.25, 4.5);
        answer = Math.round(answer*100.0)/100.0;
        
        System.out.println(answer);
     }
     
}
Die Ausgabe ist 2,73.

So verwendest du Math.pow richtig

Wenn wir die Methode java.lang.Math.pow verwenden, müssen wir ein paar Dinge beachten.
  1. Wenn der Exponent-Parameter 0 ist, wird die Ausgabe 1.0 sein. Das liegt daran, dass die Potenz 0 für eine beliebige Zahl als 1 definiert ist.
  2. Wenn der Exponent-Parameter 1 ist, ist die Ausgabe der Basis-Parameter. Das liegt daran, dass eine beliebige Basis hoch 1 dasselbe ist wie die Basis.
  3. Wenn die Basis eine negative/positive 0 ist und der Exponent-Parameter eine negative Zahl, dann ist das Ergebnis „Unendlich“. (Negative Nullen können durch die Rundung von Zahlen zwischen Null und der kleinsten darstellbaren, von Null verschiedenen negativen Zahl entstehen).
  4. Wenn der Exponent-Parameter NaN ist, ist die Ausgabe ebenfalls NaN.
Betrachten wir einen Fall, in dem diese dritte Situation auftreten kann.

import java.lang.Math;
 
public class MyClass{
 
     public static void main(String []args){         
        double base = 5;
        double exponent = Double.NaN;
 
        double answer = Math.pow(base, exponent);
 
        System.out.println(answer);
     }     
}
Dadurch wird NaN ausgegeben. Wenn dein Code also NaN ergibt, solltest du prüfen, ob das Exponent-Argument NaN ist. Falls du dich gerade fragst, was NaN ist: Es bedeutet „Not a Number“, also „keine Zahl“ und zeigt an, dass der Wert nicht definiert ist. Jetzt bist du bereit, lang.Math.pow() in deinen Anwendungen einzusetzen.

Fazit

Mit der Methode java.lang.Math.pow() kannst du ganz einfach die Potenz verschiedener Zahlen, sowohl ganzer als auch gebrochener Zahlen, ermitteln. Im Gegensatz zu einer Methode, die du selbst schreiben könntest, ist sie hoch optimiert und für verschiedene zeitkritische Anwendungen ideal geeignet. Die Methode gibt zwar alle Ergebnisse als double-Werte aus, aber wir können den Wert immer in eine Ganzzahl umwandeln, wie wir es im Beispiel getan haben. Außerdem bietet die Bibliothek java.lang.Math Methoden, um das Ergebnis auf die gewünschte Anzahl von Dezimalstellen zu runden.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION