Permalänk

CSHARP kod programmering1

Tjenare Sweclockers!
Sitter och sliter i håret lite varför jag inte får till att skriva ut antal femtioöringar i en enkel växelkassa.
Det mesta verkar funka som det ska nu ( måste städa lite i koden innan inlämning dock )

using System; namespace Utanhj { class Program { // Publika variabler static void Main(string[] args) { // Lokala variabler double betala; double handla; string str; double växel; double avrunda; double pengar; while (true) { Console.WriteLine("Välkommen till kiosken"); Console.Write("Ange hur mycket du vill handla för: "); str = Console.ReadLine(); try { handla = double.Parse(str); if (handla > 0.5) { break; } else { Console.WriteLine("Du måste handla för minst en krona."); } } catch { Console.WriteLine("Fel försök igen"); } } while (true) { Console.Write("Ange betalat belopp: "); str = Console.ReadLine(); try { betala = double.Parse(str); if (betala >= handla) { break; } else { Console.WriteLine("Medges ej"); } } catch { Console.WriteLine("Fel, försök igen."); } } pengar = ((int)(betala - handla)); växel = ((int)(betala - handla)); double tillbaka = betala - handla; tillbaka = Math.Round(tillbaka * 2.0) / 2.0; avrunda = Math.Round(växel * 2.0) / 2.0; double tusen = (int)(växel / 1000); växel = växel % 1000; pengar = pengar % 1000; double femHundra = (int)växel / 500; växel = växel % 500; pengar = pengar % 500; double ettHundra = (int)växel / 100; växel = växel % 100; pengar = pengar % 100; double femtio = (int)växel / 50; växel = växel % 50; pengar = pengar % 50; double tjugo = (int)växel / 20; växel = växel % 20; pengar = pengar % 20; double tio = (int)växel / 10; växel = växel % 10; pengar = pengar % 10; double fem = (int)växel / 5; växel = växel % 5; pengar = pengar % 5; double en = (int)växel / 1; växel = växel % 1; pengar = pengar % 1; double öre = pengar / 0.5; pengar %= 0.5; Console.WriteLine("---------------------------------------"); Console.WriteLine("Du får tillbaka: " + (tillbaka) + " kronor i växel"); Console.WriteLine("---------------------------------------"); Console.WriteLine("Lathund för växel att få tillbaka i antal "); Console.WriteLine("---------------------------------------"); Console.WriteLine("Du får " + tusen + (" tusenlappar i växel")); Console.WriteLine(""); Console.WriteLine("Du får " + femHundra + (" femhundralappar i växel")); Console.WriteLine(""); Console.WriteLine("Du får " + ettHundra + (" hundralappar i växel")); Console.WriteLine(""); Console.WriteLine("Du får " + femtio + (" femtiolappar i växel")); Console.WriteLine(""); Console.WriteLine("Du får " + tjugo + (" tjugolappar i växel")); Console.WriteLine(""); Console.WriteLine("Du får " + tio + (" tiokronor i växel")); Console.WriteLine(""); Console.WriteLine("Du får " + fem + (" femkronor i växel")); Console.WriteLine(""); Console.WriteLine("Du får " + en + (" enkronor i växel")); Console.WriteLine(""); Console.WriteLine("Du får " + öre + (" femtioöringar i växel")); Console.WriteLine("---------------------------------------"); } } }

Permalänk
Medlem

Kan inte C#, men gör ett försök.

pengar = ((int)(betala - handla));

Pengar är en int, dvs har inga 50 öringar.

double öre = pengar / 0.5;
Beräkning av 50 öringar använder pengar (som är en int).
dvs den kommer aldrig ha 50 öringar.

Permalänk

ändrade bara pengar = betala-handla precis
problemet nu är att ifall jag handlar för t.ex.
125,25 och betalar med 150kr
så avrundar jag ner till 125
25kr tillbaka i växel
då räknar den 1 tjuga 4 enkronor och 1,5 femtioöringar

Permalänk
Medlem

Du kan avrunda priset till närmaste 50 öring innan du jämför med hur mycket man betalar.

Permalänk
Inaktiv

Accepterar Csharp bokstaven Ä i funktionsnamn?