Håller på och lär mig java och har hittat några bra övningar på nätet. I en uppgift står det "Variabeln rabatt till 5." och sedan att man ska föra in en summa över 10 i en dialogruta och sedan ska rabatten dra på summan man fört in. Kanske svårt utan kod, men hur i hela friden ska man räkna ut rabatten om variabeln "rabatt" har värdet 5 och att du inte får ändra detta värde?. Man får alltså inte ändra värdet till te.x 0,95 och använda flyttande tal. värdet ska vara 5 alltså.
om man te.x deklarerar:
int rabatt;
double totpris;
..och totpris fås från indata via dialogrutan, där man skriver in summan.
Hur ska man då skriva för att dra rabatten från totpris när värdet är 5.
Du behöver inte mellanlagra allt i variabler. Hur tänker du själv om du har 5 och ska göra om det till en procentsats och räkna av det som rabatt? Det är bara att du skriver så...
Variabeln rabatt måste vara en heltalsvariabel och ha värdet 5. Det står ju "rabatt till 5." Detta är ju trots allt en uppgift jag hittade på nätet. På ett forum.
Ser inga konstigheter med uppgiften. Mitt resonemang och Geins kod stämmer.
I en heltalsvariabel så kan man bara lagra heltal, men det går ju alldeles utmärkt att i uträkningar få fram flyttal, men då måste du ha en flyttalsvariabel att lagra resultatet i, men det har du ju i form av totpris, så det är ju lugnt.
Okey. Då var det jag som missuppfattade uppgiften när jag läste den. Självklart är det onödigt att mellanlagra värden i fler variabler än nödvändigt exempelvis rabatt=5; Men trodde det var tvunget att skriva så. Då blir det ju bra mycket enklare genom att räkna ut allting i en variabel och ha variabelns namn döpt till rabatt.
I en heltalsvariabel så kan man bara lagra heltal, men det går ju alldeles utmärkt att i uträkningar få fram flyttal, men då måste du ha en flyttalsvariabel att lagra resultatet i, men det har du ju i form av totpris, så det är ju lugnt.
Vist görs det automatiska typomvandlingar i Java när man blandar typer. Om man försöker lagra en double i en int klagar kompilatorn ("possible loss of precision"). Så det är tack vara att totpris i koden Gain skrev är en double som gör att typomvandlingen blir rätt och divisionen blir en flyttals division och inte en heltals division.
Kan koden bli mer effektiv om man har rabatt som double från början så man slipper den typomvandlingen?
Rabatt måste vara int och inte double i övningen. Hade ju vart smidigare med double så slipper man omvandla. Men vad kan man göra när det måste vara en heltalsvariabel mer än att typomvandla.
141 ms totalt · 3 externa anrop · v20260731065814-full.55e59744