LÄR DIG JAVA

Java.lang.Math - Matematiska operationer


Klassen java.lang.Math innehåller metoder för att utföra grundläggande numeriska operationer, till exempel logaritmen, kvadratroten och trigonometriska funktioner.

Vad är java.lang.Math?

Java har en standardklass java.lang.Math med exempelvis pow, sqrt och trigonometriska funktioner. Klassen ligger i java.lang och kan användas direkt som Math.sqrt(9) utan import.

Java.lang.Math innehåller över 75 inbyggda matematiska operationer!

Hur fungerar java.lang.Math?

Java har en inbyggd standardklass, java.lang.Math, som innehåller många vanliga matematiska metoder som underlättar när man vill utföra mer avancerade matematiska beräkningar

  • Java.lang.Math kan utföra matematiska beräkningar som roten ur, logaritmen och upphöjt till, eller använda trigonometriska funktioner som sinus, cosinus och tangens, och mycket mer.
  • Java.lang.Math innehåller över 75 inbyggda matematiska operationer och nedan visas ett par exempel på hur man använder sig av några av metoderna.
  • För en fullständig lista på alla operationer, se Math (Java Platform SE 8 ) - Oracle Help Center

Längre fram i kapitel 5 kommer vi se mer av hur metoder fungerar och hur man kan skapa egna metoder, men nu nöjer vi oss med att se hur vi kan använda oss av de inbyggda metoderna i java.lang.Math för att enklare utföra olika matematiska beräkningar.

Till sist, glöm inte bort att hålla koll på vilken datatyp som är kompatibel med den beräkning du tänker genomföra, så att du inte råkar ut för oväntade fel!

Hur använder man mer avancerade matematiska operationer i Java?

Du kan också skriva import static java.lang.Math.*; överst i filen. Då kan du referera till klassens tillgängliga statiska medlemmar utan prefixet Math..

import static java.lang.Math.*;

Stjärnan gör att tillgängliga statiska medlemmar kan anges utan klassnamn. PI och E är konstanter, inte metoder.

import static java.lang.Math.*;
public class java_math {
    public static void main(String[] args) {
        System.out.println(PI);  // PI: 3.141592653589793
        System.out.println(E);   // Eulers tal: 2.718281828459045
    }
}

Resulterar i,

3.141592653589793 
2.718281828459045

I detta fall kan vi dock göra det ännu enklare. Eftersom java.lang.Math är ett standardbibliotek i Java så är det möjligt att direkt kalla på biblioteket utan att först importera det. För att kalla på biblioteket skriver vi helt enkelt Math. följt av den matematiska operationen

public class java_math {
    public static void main(String[] args) {
        System.out.println(Math.PI);  // PI: 3.141592653589793
        System.out.println(Math.E);   // Eulers tal: 2.718281828459045
    }
}

Vilket ger exakt samma utskrift.

Testa att skriv Math. i IntelliJ. Då visas en lång lista med alla metoder som finns tillgängliga!

Hur använder man en metod i java.lang.Math?

Säg att vi vill beräkna 6^2 ( 6 "upphöjt till" 2 ), som förvisso är ett enkelt tal att beräkna. Det viktiga är att se hur vi kan använda metoderna på ett enkelt sätt.

double num = Math.pow(6.0, 2.0); // num = 36.0

Eller kvadratroten ur 9

double numSquare = Math.sqrt(9.0); // numSquare = 3.0

Konstanterna använder vi på liknande sätt. Säg att vi vill beräkna 5^Pi ( 5 "upphöjt till" Pi)

double numPowPi = Math.pow(5.0 , Math.PI); // numPowPi = 278.377

Vi skriver helt enkelt Math. följt av den metod vi vill använda. Observera att de flesta metoder i denna klass returnerar en double.

Notera angående java.lang.Math

Som nämnt ovan är det viktigt att hålla koll på vilken datatyp vi använder metoden med. Vi kan t.ex. inte skriva

int num = Math.pow(6, 2);

Math.pow tar emot två double-värden. Heltalen 6 och 2 konverteras automatiskt, men metodens resultat är en double och kan inte direkt tilldelas en int. Spara resultatet i en double, eller gör en uttrycklig konvertering om förlusten av decimaler är avsiktlig.