8 svar
49 visningar
popelos 180
Postad: 6 jan 10:48

Övningsuppgift Java konventering.

// Korrigera nedanstående kod. Variabeln gram är av datatypen int.
double kilogram = gram / 1000;

Klarade ej den här heller funderar på om konventeringen skall se annorlunda ut typ. Men man kan ej ha int och double va? 

int gram = double kilogram * 1000;
CurtJ 1258
Postad: 6 jan 11:05

I java använder du parenteser när du type-castar

typ 

double kilogram = (double) gram/1000;

popelos 180
Postad: 6 jan 11:19

tack!

 

Är det det som är fel i denna uppgift att det saknas paranteser?

CurtJ 1258
Postad: 6 jan 11:28

Den första kan du lösa som jag har visat. 

Den andra måste du type-casta till int med samma metod. Prova det

CurtJ 1258
Postad: 6 jan 11:40

Jag ska förtydliga mig lite grann

I

double kilogram = (double) gram/1000;

instruerar du kompilatorn att tolka gram som en double och

Så när du ska utföra

int gram = double kilogram * 1000;

så måste du instruera kompilatorn att göra om hela uttrycket till en int 

int gram = (int) (kilogram * 1000); 

Om du utelämnar parentesen runt uttrycket så  tolkar kompilatorn att du vill göra om kilogram till int först och då tappar du decimalerna. 

Laguna Online 31100
Postad: 6 jan 17:48

Det blir kompileringsfel för att man tappar decimalerna, så man gör det inte så lätt av misstag.

I vissa andra språk får man som mest en varning.

CurtJ 1258
Postad: 6 jan 18:45

Nej där har jag en annan uppfattning. Följande är en fullt rimlig instruktion som är korrekt om du är ute efter heltalsdelen . 

int gram = (int) kilogram * 1000;

Men den ger dig inte samma resultat som följande vilket jag tror att frågeställaren frågade om. 

int gram = (int) (kilogram * 1000);

Laguna Online 31100
Postad: 6 jan 19:14

Jag menade att

int gram = kilogram*1000;

ger kompileringsfel.

popelos 180
Postad: 6 jan 20:04

tack för hjälp!

Svara
Close