1. Ümardamise alused: miks see on vajalik?
Programmeerimises on väga oluline arvude täpsust õigesti hallata. Eriti siis, kui arvutustulemus sisaldab kümnendkohti, võimaldab ümardamine tulemusi lihtsustada ja selgelt esitada. Näiteks kasutatakse ümardamist sageli summade arvutamisel või mõõteandmete koondamisel.
Ümardamise praktiline näide
Näiteks, kui ümardada 2.5, saab tulemuseks 3, aga kui ümardada 2.3, saab tulemuseks 2. Selliseid toiminguid kohtab tihti ka igapäevaelus. Ka programmeerimises on palju olukordi, kus tulemusi lihtsustatakse ümardamise abil.
2. Kuidas ümardada C-keeles
C-keeles kasutatakse ümardamiseks math.h
teegis olevat round()
funktsiooni. See funktsioon ümardab talle antud kümnendmurru lähima täisarvuni.
round() funktsiooni põhiline kasutus
Allpool on näide round()
funktsiooni kasutamisest:
#include <stdio.h>
#include <math.h>
int main() {
double x = 2.5;
printf("Ümardatud tulemus: %fn", round(x));
return 0;
}
Selle programmi käivitamisel väljastatakse: “Ümardatud tulemus: 3.000000”. See tähendab, et round()
funktsioon ümardas 2.5
lähima täisarvuni ehk 3
. Ära unusta math.h
teeki kaasata.
3. Ümardamine konkreetse kümnendkohani
C-keeles tuleb konkreetse kümnendkoha järgi ümardamiseks veidi nuputada. Levinud viis on korrutada väärtus kümne astmega, muuta ajutiselt täisarvuks, ümardada ning seejärel tagasi jagada.
Näide kümnendkohtade järgi ümardamisest
#include <stdio.h>
#include <math.h>
int main() {
double num = 123.456;
num = num * 100; // teisendame kahe kümnendkohani täisarvuks
double result = round(num) / 100; // ümardame ja teisendame tagasi
printf("%.2fn", result); // Tulemus: 123.46
return 0;
}
Selles näites korrutatakse num
sajaga, et liigutada koma kahe koha võrra, seejärel ümardatakse round()
funktsiooniga ning jagatakse uuesti sajaga. Tulemuseks on 123.46
.
4. Ümardamine ilma funktsioonita
C-keeles saab ümardamist teostada ka ilma round()
funktsioonita. Selleks liidetakse arvule 0.5 ja teisendatakse tulemus int
tüübiks.
Käsitsi ümardamise viis
#include <stdio.h>
int main() {
double num = 2.3;
int rounded = (int)(num + 0.5);
printf("Ümardatud tulemus: %dn", rounded);
return 0;
}
Selles koodis liidetakse 2.3
-le 0.5
, saadakse 2.8
, ja teisendatakse int
-iks, tulemuseks 2
. 0.5 liitmine tagab ümardamise. See meetod sobib alternatiiviks round()
funktsioonile.

5. Negatiivsete arvude ümardamine
Ümardada saab nii positiivseid kui ka negatiivseid arve, kuid negatiivsete arvude puhul võib tulemus olla ootamatu. Näiteks, kui ümardada -2.5, saab tulemuseks -3, mitte -2. C-keele round()
funktsioon järgib seda loogikat ka negatiivsete arvude puhul.
Näide negatiivse arvu ümardamisest
#include <stdio.h>
#include <math.h>
int main() {
double num = -2.5;
printf("Ümardatud tulemus: %fn", round(num));
return 0;
}
Selle programmi käivitamisel ümardatakse -2.5
väärtus -3.0
-ks. Sama reegel kehtib nii positiivsete kui ka negatiivsete arvude puhul, seega negatiivsete arvude ümardamisel tuleb tulemust kontrollida.
6. Muud ümardamisviisid C-keeles
Lisaks ümardamisele kasutatakse ka allapoole (põrandale) ja ülespoole (laele) ümardamist. C-keeles saab selleks kasutada math.h
teegi floor()
(põrand) ja ceil()
(lagi) funktsioone.
Näide põranda- ja laefunktsioonidest
#include <stdio.h>
#include <math.h>
int main() {
double num = 2.7;
printf("Põrand: %fn", floor(num)); // Tulemus: 2.0
printf("Lagi: %fn", ceil(num)); // Tulemus: 3.0
return 0;
}
Selles näites annab floor()
tulemuseks 2.0
(allapoole ümardatud) ja ceil()
tulemuseks 3.0
(ülespoole ümardatud). floor()
alandab väärtust, ceil()
suurendab väärtust täisarvuni.
7. Kokkuvõte
C-keeles saab ümardamist lihtsalt teha math.h
teegi round()
funktsiooniga. Kui on vaja ümardada konkreetse kümnendkohani või negatiivseid arve, tuleb kasutada lisameetodeid. Kasutades põranda- või laefunktsioone, saab lahendada ka muid arvude ümardamise olukordi.