ÖVNINGSUPPGIFT

Uppgift 7 - Datatyper vid matematiska beräkningar

Försök själv först. Ledtrådar och facit finns längre ner – helt utan inloggning.


Nyckelord: Datatyper, Variabler, Matematiska beräkningar

Matematiska beräkningar

Datatyper vid matematiska beräkningar

Vad blir utskriften och vilken datatyp har resultatet från följande beräkningar?

int A = 10;
int B = 4;
double C = A/B;
System.out.println(C);

Vad skulle hänt om man istället hade skrivit:

System.out.println(A/B);

Vad händer om vi istället byter datatyp på variablerna till doubles?

double X = 10.0;
double Y = 4.0;
double Z = X/Y;
System.out.println(Z);
System.out.println(X/Y);
Ledtråd

Tänk på att det spelar roll vilken datatyp som man använder i beräkningen. En beräkning med enbart integers resulterar alltid i ett resultat med enbart integers. Läs mer under matematiska beräkningar i Java.

Svar

Förklaring

I fallet när vi bara har integers

int A = 10;
int B = 4;
double C = A/B;
System.out.println(C);
System.out.println(A/B);

får vi utskriften:

2.0
2

I första fallet beräknas först 10/4 vilket normalt blir 2.5. Men eftersom 2.5 inte är ett heltal, kapas decimaltalet av, det vill säga till 2. Men eftersom vi säger att vi vill spara värdet som en double, konverteras 2 till 2.0.

I andra fallet anger vi inte någon datatyp. Eftersom vi då inte har någon typkonvertering så får vi slutresultatet 2.

Om vi istället vill ha "det det faktiskt borde bli", det vill säga 2.5 kan vi istället använda doubles som i fall två.

double X = 10.0;
double Y = 4.0;
double Z = X/Y;
System.out.println(Z);
System.out.println(X/Y);

I detta fall har vi dividering av två doubles. 10.0/4.0 blir 2.5 och kommer därför sparas i variabeln Z. Även utskriften från X/Y kommer att resultera i 2.5 eftersom beräkning med doubles alltid resulterar ett resultat av doubles.

2.5
2.5

Fler uppgifter