Matematiska beräkningar i Java


Inom matematiken är en operation en handling där en eller flera operander med hjälp av en operator leder till en lösning. Operatorn kan vara ett av räknesätten och operander kan representeras av till exempel ett tal. 

Hur fungerar matematiska beräkningar i Java ?

Vid problemlösning av tekniska tillämpningar är det vanligt att behöva göra flera numeriska beräkningar. Att initiera en beräkning i Java är enkelt eftersom de allra vanligaste räknesätten finns tillgängliga som standard i Java. Java tillhandahåller även standardklassen java.lang.Math som innehåller flera vanliga matematiska beräkningar, så som upphöjt, roten ur och trigonometriska funktioner. I nästa avsnitt går vi igenom i detalj hur man kan använda sig av java.lang.Math, men först tar vi standardbiblioteket!

Att initiera en beräkning i Java är enkelt eftersom de allra vanligaste räknesätten finns tillgängliga som standard i Java.

Nedan visas några av de vanligaste matematiska operationerna i Java som du bör ha koll på.

Beräkning Notation Datatyp resultat Ex. int A = 10, int B = 4
Addition + int A + B = 14.0
Subtraktion int A – B = 6
Multiplikation * int A * B = 40
Division / double A / B = 2.5
Modulus % double A % B = 2.0
Mindre än < boolean A < B = false
Större än > boolean A > B = true
Mindre än eller lika med <= boolean A <= B = false
Större än eller lika med >= boolean A >= B = true
Lika med == boolean A == B = false
Inte lika med != boolean A != B = true

Exempel på Matematiska beräkningar i Java

De matematiska operationerna känner vi igen och är inga konstigheter. Men det är viktigt att vara noggrann med vilken datatyp du deklarerar till en variabel. Betrakta följande kod:

public class matematiska_operationer { 
    public static void main(String[] args) { 
        // Variabler av datatypen double 
        double A = 10; 
        double B = 4; 
        System.out.println(A+B); 
        System.out.println(A-B); 
        System.out.println(A*B); 
        System.out.println(A/B); 
    } 
}

Vilket ger utskriften:

14.0 
6.0 
40.0 
2.5

Vilket är resultat som vi förväntar oss av respektive matematiska operation. Men om A, och istället är integers, det vill säga heltal, får vi följande beteende:

public class matematiska_operationer {
    public static void main(String[] args) {

        // Variabler av datatypen integer
        int A = 10;
        int B = 4;

        System.out.println(A+B);
        System.out.println(A-B);
        System.out.println(A*B);
        System.out.println(A/B);

    }
}

Ger utskriften:

14 
6 
40 
2

En matematisk operation med en viss datatyp, kommer att resultera i ett resultat av samma datatyp.

Det vill säga, en matematisk operation med en viss datatyp, kommer att resultera i ett resultat av samma datatyp. Exempelvis vid divisionen 10/4, (som normalt blir 2.5), blir istället 2, eftersom en division av två integers kommer resultera i ett resultat av typen integer, det vill säga ett heltal. Decimaltecknet kommer alltså kapas av.

Kan man utföra en matematisk operation med olika datatyper?

Absolut. Om vi tar samma exempel igen, fast med blandade datatyper:

public class matematiska_operationer {
    public static void main(String[] args) {

        // Variabler av blandade datatyper
        int A = 10;
        double B = 4;

        System.out.println(A+B);
        System.out.println(A-B);
        System.out.println(A*B);
        System.out.println(A/B);

    }
}

så fås utskriften:

14.0 
6.0 
40.0 
2.5

Vilket är samma resultat som vi fick vid fallet när båda variablerna var av datatypen double. Java har nämligen prioriteringsordningen att en matematisk operation som innehåller ett flyttal, kommer att resultera i ett flyttal. Eftersom vi utförde matematiska operationer med både heltal (integers) och flyttal (double), kommer Java prioritera flyttalet, alltså blir resultatet en double.

Modulus i Java

Den operation som brukar vara lite knepig att förstå till en början är Modulus, den returnerar resten vid en division. Vi ska ta ett exempel för att visa Modulus beräkningar. Säg att du har en kanelbullelängd som är 21 cm lång och sedan vill dela den i exakt 6 cm långa bitar (viktigt att dom är exakt 6 cm). Du kan då dela kanelbullelängden i tre bitar och vi har sedan 3 cm kvar av kakan, de 3 cm är vår rest.

Bilden visar hur vi har vår bit på 21 cm och sedan delar den med 6 och hur vi då får tre hela bitar och en bit som är 3 cm. Med andra ord, vi får svaret 3 rest 3

Vidare, nedan finns några exempel på Modulus beräkningar i Java

int x = 7;
int y = 2; 

int mod = x % y; 
// mod blir då resten när vi delar 7 med 2 --> mod = 1 

int x = 8; 
int Y = 4; 

int mod = x % y; 
// Här blir mod = 0, för att vi får ingen rest när vi delar 8 med 4 

int x = 9;
int y = 5; 

int mod = x % y; 
// Resten blir --> mod = 4

Avslutningsvis, det var ett par exempel och känns det fortfarande lite otydligt, lägg in kod i IntelliJ och testa dig runt. Räkna först vad du tror det ska bli och sedan kontrollerar du med hjälp av IntelliJ att det stämmer.

Jämförelseoperationer i Java

Jämförelseoperationerna använder vi för att avgöra om ett värde är större, mindre eller lika stort som ett annat värde. Vi tar samma exempel igen:

public class matematiska_operationer {
    public static void main(String[] args) {

        // Variabler av blandade datatyper
        int A = 10;
        int B = 4;

        System.out.println(A > B);  // Är A större än B?
        System.out.println(A < B);  // Är A mindre än B?
        System.out.println(A <= B); // Är A mindre eller lika stort som B?
        System.out.println(A >= B); // Är A större eller lika stort än B?
        System.out.println(A == B); // Är A exakt lika stort som B?

    }
}

Ger utskriften:

true 
false 
false 
true 
false

Det vill säga om operationen är sann, resulteras true, och är operationen falsk, resulteras false. Datatypen som resulteras är alltså av typen boolean. Avslutningsvis, vi kommer gå igenom fler jämförelseoperationer och logiska operationer i avsnittet: Jämförelse och logiska operatorer i Java.

Vad tyckte du om sidan?

Lämna gärna feedback och hjälp oss göra sidan bättre

Feedback gör oss bättre!

Lämna gärna feedback om vad du tyckte om avsnittet!