2 svar
366 visningar
Lazcano 8
Postad: 26 nov 2023 14:08

Kassasystem c#

Hej! 

Har i uppgift att gära ett kassasystem. Man betalar för sina varor o programmet ska visa hur mycket växel du ska få tillbaka. Ifall det priset är på tex 340.50kr då ska det avrundas neråt till 340kr och ifall priset är 340.75kr då ska priset avrundas uppåt till 341kr. Jag får rätt växel men priset avrudas inte verken neråt ller uppåt, har försökt googla men hittar inget tyvärr.  Nån har som kan hjälpa mig, vet inte vart jag gjort fel

    internal class Program
    {
        static void Main(string[] args)
        {
            double tal1, tal2;

            Console.WriteLine(" _________________________________");
            Console.WriteLine("| Välkommen till Amos snabbgross! |");
            Console.WriteLine(" ---------------------------------");

            Console.WriteLine("DAGENS KLIPP ÄR: ");
            Console.WriteLine("-----------------");
         
            
            
            Console.WriteLine("Mjölk:          19.50kr/st ");
            Console.WriteLine("Ägg 24pack:     50kr/st ");
            Console.WriteLine("Bröd:           20kr/st ");
            Console.WriteLine("Potatis 1kg:    10kr/st ");
            Console.WriteLine("Multivitamin:   14,50kr/st ");
            Console.WriteLine("Smör:           22.90kr/st ");
            Console.WriteLine("___________________________");
            
            
            Console.WriteLine("Ange priset att betala: ");
            tal1 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Ange beloppet betalt: ");
            tal2 = Convert.ToDouble(Console.ReadLine());
            double summa = tal2 - tal1;

            double vaxel = Math.Round(summa * 2, MidpointRounding.ToEven) / 2;
            Console.WriteLine("___________________________");

            var tusenlappar = (double)vaxel / 1000;
            vaxel %= 1000;
            var femhundralappar = (double)vaxel / 500;
            vaxel %= 500;
            var hundralappar = (double)vaxel / 100;
            vaxel %= 100;
            var femtiolappar = (double)vaxel / 50;
            vaxel %= 50;
            var tjugolappar = (double)vaxel / 20;
            vaxel %= 20;
            var tiokronor = (double)vaxel / 10;
            vaxel %= 10;
            var femkronor = (double)vaxel / 5;
            vaxel %= 5;
            var enkronor = (double)vaxel / 1;
            vaxel %= 1;
            var femtioöre = (double)vaxel / 0.50;
            vaxel %= 0.50;

            Console.WriteLine($"Växel tillbaka: {summa} kr");
           
            Console.WriteLine($"Antal 1000-lappar: {tusenlappar}");
            Console.WriteLine($"Antal 500-lappar: {femhundralappar}");
            Console.WriteLine($"Antal 100-lappar: {hundralappar}");
            Console.WriteLine($"Antal 50-lappar: {femtiolappar}");
            Console.WriteLine($"Antal 20-lappar: {tjugolappar}");
            Console.WriteLine($"Antal 10-kronor: {tiokronor}");
            Console.WriteLine($"Antal 5-kronor: {femkronor}");
            Console.WriteLine($"Antal 1-kronor: {enkronor}");
            Console.WriteLine($"Antal 0,50-kronor: {femtioöre}");
         
            
            
            
            
            
            
            Console.ReadLine();

        }
    }
}
anders_k 237
Postad: 26 nov 2023 14:39 Redigerad: 26 nov 2023 14:40

du skall väl avrunda innan du subtraherar? du säger att priset (tal1) skall avrundas men du avrundar bara differensen (summa som du kallar det).

Lazcano 8
Postad: 26 nov 2023 16:39
anders_k skrev:

du skall väl avrunda innan du subtraherar? du säger att priset (tal1) skall avrundas men du avrundar bara differensen (summa som du kallar det).

Tack så mycket! Ska försöka lista ut det! :)

Svara
Close