Ö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;
I java använder du parenteser när du type-castar
typ
double kilogram = (double) gram/1000;
tack!
Är det det som är fel i denna uppgift att det saknas paranteser?
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
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.
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.
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);
Jag menade att
int gram = kilogram*1000;
ger kompileringsfel.
tack för hjälp!