Avrunda uppåt/nedåt
Hej! Har aldrig förstått hur man avrundar uppåt eller nedåt med hjälp av int. Om jag får exempelvis ett pris på 140 kr genom input så kan output vara att jag ska ta ut 200 kr ur en bankomat. Hur skriver man detta i kod?
Console.WriteLine("Pris: ");
int pris = int.Parse(Console.ReadLine());
int uttag = (pris+50/100)*100;
Console.WriteLine("Du ska ta ut" + uttag + " kr ur bankomaten.");
Vet att det är fel kod, men kan någon förklara för mig hur man gör?
((pris+99)/100)*100 skulle kunna vara rätt.
Laguna skrev:((pris+99)/100)*100 skulle kunna vara rätt.
Kan du förklara varför?
Mja, man ska lägga till något och sedan se till att det blir ett jämnt hundratal. Det känsliga är att jämna hundratal inte ska bli nästa hundratal utan förbli som de är. Alla andra tal hamnar på nästa hundratal, vilket är vad vi vill.
Man kan förstås visa det med matematiska formler om man orkar.
Om v är värdet på sedeln och p är priset på varan:
Så om man får t.ex. 420 kr i pris så blir det:
(420 + 99) / 100 = 5 (int-sats)
5 * 100 = 500
Ok då tror jag att jag fattar. Tack!
Hur gör man om man vill avrunda nedåt?
Säg att man får pris 430 kr, men vill avrunda det till 400 kr på något sätt?
430/100*100