6 svar
298 visningar
Farbrorgul 408
Postad: 2 feb 2021 21:07

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?

Laguna Online 30711
Postad: 2 feb 2021 22:50

((pris+99)/100)*100 skulle kunna vara rätt.

Farbrorgul 408
Postad: 3 feb 2021 22:05
Laguna skrev:

((pris+99)/100)*100 skulle kunna vara rätt.

Kan du förklara varför?

Laguna Online 30711
Postad: 3 feb 2021 22:23

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.

Lindehaven 820 – Lärare
Postad: 4 feb 2021 13:39

Om v är värdet på sedeln och p är priset på varan:

v×x+v-1v

Farbrorgul 408
Postad: 4 feb 2021 21:31

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?

Lindehaven 820 – Lärare
Postad: 4 feb 2021 22:37

430/100*100

Svara
Close