6 svar
78 visningar
Farbrorgul 230
Postad: 2 feb 2021

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 13483
Postad: 2 feb 2021

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

Farbrorgul 230
Postad: 3 feb 2021
Laguna skrev:

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

Kan du förklara varför?

Laguna Online 13483
Postad: 3 feb 2021

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 691 – Lärare
Postad: 4 feb 2021

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

v×x+v-1v

Farbrorgul 230
Postad: 4 feb 2021

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 691 – Lärare
Postad: 4 feb 2021

430/100*100

Svara Avbryt
Close