Behöver hjälp i Java - växel
Hej!
Jag läser en nybörjarkurs i programmering och har ingen tidigare erfarenhet inom detta. Språket är Java. Nu har vi fått en uppgift som lyder:
Skriv ett program som beräknar växeln man får tillbaka efter att man har betalat för sina varor. Vid utskriften anges vilka sedlar och mynt som köparen får. Inmatningen ska vara priset som ska betalas och beloppet köparen har betalat. Programmet ska skriva ut antal 1000-, 500-, 200-, 100-, 50- och 20- sedlar och antal 10-, 5-, 2-, 1- kronor man får som växel.
So far so good, det har jag lyckats med. Men, och det är här mitt problem börjar. Till uppgiften finns även ett extra task:
Extra task: Vi utgår från att 50 öre fortfarande används. Växeln avrundas till närmsta 50 öre. Om antalet öre är < 25 avrundas växeln neråt till 0, om det ligger mellan 25 och 75 avrundas växeln till 50 öre och om det är >75 avrundas växeln upp till en krona.
Jag tror att jag förstår grunderna till hur jag gör rent konkret när jag avrundar, men hur ändrar jag mitt befintliga program så att det funkar med femtioöringar? I mitt ursprungsprogram har jag använt mig av int, men om jag ska få till femtioöringar behöver jag väl använda double? Och då får jag inte till det med antal valörer, då blir alla tal decimaltal och det stämmer ju inte, man kan ju t ex inte få 2,54 hundralappar... Hur gör jag för att det ska bli rätt?
Här är mitt ursprungsprogram utan femtioöringar:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int tillbaka, växel, tusenLapp, femhundraLapp, tvåhundraLapp, hundraLapp,
femtioLapp, tjugoLapp, tia, femma, tvåKrona, krona;
System.out.print("Hur mycket ska kunden betala? ");
int attBetala = scanner.nextInt();
System.out.print("Hur mycket pengar har kunden gett dig? ");
int kundenBetalat = scanner.nextInt();
växel = kundenBetala - attBetala;
tillbaka = växel;
tusenLapp = tillbaka /1000;
tillbaka = tillbaka % 1000;
femhundraLapp = tillbaka / 500;
tillbaka = tillbaka % 500;
tvåhundraLapp = tillbaka / 200;
tillbaka = tillbaka % 200;
hundraLapp = tillbaka / 100;
tillbaka = tillbaka % 100;
femtioLapp = tillbaka / 50;
tillbaka = tillbaka % 50;
tjugoLapp = tillbaka / 20;
tillbaka = tillbaka % 20;
tia = tillbaka / 10;
tillbaka = tillbaka % 10;
femma = tillbaka / 5;
tillbaka = tillbaka % 5;
tvåKrona = tillbaka / 2;
tillbaka = tillbaka % 2;
krona = tillbaka / 1;
//Här presenteras hur mycket pengar kunden ska ha tillbaka i olika valörer.
System.out.print("Kunden ska ha tillbaka: " + växel + "\nI dessa valörer:" +
"\nTusenlappar: " + tusenLapp + "\nFemhundralappar: " + femhundraLapp +
"\nTvåhundralappar: " + tvåhundraLapp + "\nHundralappar: " + hundraLapp +
"\nFemtiolappar: " + femtioLapp + "\nTjugolappar: " + tjugoLapp +
"\nTior: " + tia + "\nFemmor: " + femma + "\nTvåkronor: " + tvåKrona +
"\nEnkronor: " + krona);
}
}