1. Sissejuhatus
Python on programmeerimiskeel, mida kasutatakse laialdaselt andmeanalüüsis, masinõppes ja paljudes teistes valdkondades. Üks igapäevastes programmides sageli esinevatest toimingutest on “arvude ümardamine”. Näiteks on sageli vaja ümardada kindel arv kümnendkohti või teisendada väärtus lähima täisarvuni.
Selles artiklis selgitame üksikasjalikult erinevaid meetodeid, kuidas Pythonis ümardamist teha. Tutvustame nii Pythonis sisseehitatud round()
funktsiooni kui ka täpsemaks arvutamiseks mõeldud Decimal
moodulit, et valida sobiv ümardamismeetod vastavalt olukorrale.
Selle juhendi abil õpid suurendama arvutuste täpsust ja parandama koodi usaldusväärsust.
2. Mis on ümardamine Pythonis?
Ümardamine Pythonis tähendab arvu teisendamist lähima täisarvuni või määratud kümnendkohani. See toiming on väga oluline andmetöötluses ja arvutustes. Näiteks finantsandmete või füüsikaliste arvutuste puhul võib ümardamise viis oluliselt mõjutada lõpptulemust.
Pythonis saab kasutada sisseehitatud round()
funktsiooni, et hõlpsalt ümardada arve, kuid sellel funktsioonil on piiranguid. Eriti tuleb tähelepanu pöörata ujukomaarvude täpsusele ning täpsemate tulemuste saavutamiseks on soovitatav kasutada Pythoni Decimal
moodulit.
Järgmises osas vaatame lähemalt round()
funktsiooni põhikasutust.

3. round()
funktsiooni põhiline kasutamine
round()
kasutamise põhialused
round()
on Pythoni standardne funktsioon, mida kasutatakse arvude ümardamiseks. Põhikasutus on järgmine:
print(round(1.5)) # Väljund: 2
print(round(2.5)) # Väljund: 2
Selles näites ümardatakse 1.5 väärtuseks 2 ja ka 2.5 väärtuseks 2. Pythoni round()
funktsioon kasutab vaikimisi nn “pankurite ümardamist” (Banker’s rounding), mis tähendab, et kui jääk on 0.5, ümardatakse lähima paarisarvuni.
Ümardamine kindla kümnendkohani
round()
funktsiooni teist argumenti kasutades saab määrata, mitu kümnendkohta ümardada. Näide:
print(round(1.456, 2)) # Väljund: 1.46
See kood ümardab arvu kolmandal kümnendkohal ja kuvab tulemuse kahe kümnendkohaga.
round()
funktsiooni eripärad
Oluline on teada, et round()
võib anda ootamatuid tulemusi, kuna ujukomaarvude esitus arvutis võib sisaldada vigu. Näiteks 0.1 või 0.2 ei pruugi olla esitatud täpselt, mis võib viia ebatäpse ümardamiseni. Sellistel juhtudel on soovitatav kasutada täpsemat Decimal
moodulit.
Järgmises osas selgitame lähemalt Decimal
mooduli kasutamist.
4. Täpne ümardamine Decimal mooduliga
Mis on Decimal moodul?
Pythoni Decimal
moodul on loodud ujukomaarvude (float
) täpsusprobleemide lahendamiseks. Seda kasutatakse eriti olukordades, kus vigu ei tohi esineda, näiteks finantsandmetes või teaduslikes arvutustes. Decimal
pakub täpseid kümnendarvutusi ja väldib ujukomaarvudega seotud ebatäpsusi.
Näiteks tavalisel float
arvutamisel võib esineda järgmine probleem:
print(0.1 + 0.2) # Väljund: 0.30000000000000004
Seda saab vältida Decimal
abil:
from decimal import Decimal
print(Decimal('0.1') + Decimal('0.2')) # Väljund: 0.3
Kuidas luua Decimal
objekte
Decimal
objekt luuakse, kui väärtus antakse stringina. See välistab ujukomaarvude ümardamisvead. Näide:
from decimal import Decimal
d = Decimal('1.456')
print(d) # Väljund: 1.456
Ümardamine quantize()
meetodiga
Decimal
objektidel on meetod quantize()
, mis võimaldab määratud täpsusega ümardamist. Lisaks saab valida ümardamise režiimi. Levinum on ROUND_HALF_UP
, kuid olemas on ka muud, näiteks ROUND_DOWN
.
Näide: ümardamine kahe kümnendkohani:
from decimal import Decimal, ROUND_HALF_UP
d = Decimal('1.456')
rounded = d.quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)
print(rounded) # Väljund: 1.46
Decimal mooduli eelised ja kasutusvaldkonnad
Decimal
on eriti kasulik rahanduses, kus isegi väikesed ümardamisvead võivad kogunedes põhjustada suuri probleeme. Samuti soovitatakse seda teaduslikes arvutustes, et vähendada vigade mõju.
5. math.floor()
ja math.ceil()
tutvustus
Kuidas kasutada math.floor()
math.floor()
tagastab väikseima täisarvu, mis on väiksem või võrdne etteantud arvuga. Teisisõnu, see “lõikab maha” kümnendkoha. Näide:
import math
print(math.floor(3.9)) # Väljund: 3
Kuidas kasutada math.ceil()
math.ceil()
tagastab väikseima täisarvu, mis on suurem või võrdne etteantud arvuga. Seda nimetatakse “ülespoole ümardamiseks”. Näide:
import math
print(math.ceil(3.1)) # Väljund: 4
Millal kasutada floor()
ja ceil()
floor()
ja ceil()
on kasulikud statistikas, mänguarenduses ja muudes valdkondades, kus on vaja kindlat ümardamisreeglit. Näiteks punktisüsteemides, kus alati peab lõpparv olema kas väiksem (floor) või suurem (ceil).
6. Kombineeritud kasutuse näited
Lisaks round()
ja Decimal
moodulile saab kasutada ka floor()
ja ceil()
funktsioone. Nende kombineerimisel saab luua paindlikke ümardamisstrateegiaid.
Kohandatud funktsiooni loomine
Näiteks võib luua funktsiooni, mis esmalt ümardab kindla täpsusega ja seejärel kasutab ceil()
, et alati üles ümardada:
import math
def custom_round(value, digits):
rounded_value = round(value, digits)
return math.ceil(rounded_value)
print(custom_round(1.456, 2)) # Väljund: 2
Selliste funktsioonidega saab realiseerida väga täpseid ümardamisreegleid vastavalt konkreetsele vajadusele.

7. Korduma kippuvad küsimused (FAQ)
1. Millal tuleks kasutada round()
funktsiooni?
round()
on kõige lihtsam viis Pythonis arve ümardada. See sobib hästi ujukomaarvude ja täisarvude ümardamiseks. Oluline on teada, et round()
kasutab vaikimisi „pankurite ümardamist“ (Banker’s rounding), mis tähendab, et kui jääk on 0.5, ümardatakse lähima paarisarvuni. Kui selline ümardamine on aktsepteeritav või vajalik, on round()
õige valik.
Näiteks järgmine kood ümardab arvu kahe kümnendkohani:
print(round(1.456, 2)) # Väljund: 1.46
2. Millal on Decimal
moodul parim valik?
Decimal
sobib olukordades, kus on vaja maksimaalset täpsust ja vältida ujukomaarvude vigu. Seda kasutatakse sageli finantsarvutustes ja teaduslikes valdkondades, kus isegi väike viga võib mõjutada tulemusi.
Näiteks:
from decimal import Decimal
print(Decimal('0.1') + Decimal('0.2')) # Väljund: 0.3
3. Mida teha, kui ümardamise tulemus ei ole oodatud?
Kui ümardamise tulemus erineb ootuspärasest, tasub arvestada, et round()
funktsioon kasutab vaikimisi pankurite ümardamist. Kui soovid alati ümardada ülespoole 0.5 puhul, kasuta Decimal
moodulit koos ROUND_HALF_UP
režiimiga.
Näide:
from decimal import Decimal, ROUND_HALF_UP
d = Decimal('1.25')
print(d.quantize(Decimal('0.1'), rounding=ROUND_HALF_UP)) # Väljund: 1.3
8. Kokkuvõte
Selles artiklis vaatasime erinevaid viise, kuidas Pythonis arve ümardada. round()
funktsioon on lihtne ja mugav, kuid selle täpsus ja reeglid võivad mõnikord piiranguid seada. Kui on vaja täpseid arvutusi, on soovitatav kasutada Decimal
moodulit, kus saab täpselt kontrollida ümardamise viisi.
Samuti on kasulik tunda math.floor()
ja math.ceil()
funktsioone, et rakendada alati kindlat ümardamisreeglit (alati alla või alati üles). Õige meetodi valimine vastavalt olukorrale suurendab programmi täpsust ja töökindlust.
9. Seotud artiklid ja viited
Et paremini mõista Pythoni ümardamise võimalusi, soovitame järgmisi ressursse:
- Pythoni ametlik dokumentatsioon –
round()
funktsioon
Selgitab põhjalikultround()
funktsiooni kasutust ja eripärasid, sh pankurite ümardamist.
Python Official Documentation - Pythoni ametlik dokumentatsioon –
decimal
moodul
Tutvustab täpse arvutuse jaoks looduddecimal
moodulit ja selle funktsioone, naguquantize()
.
Python Decimal Documentation - Artikkel ümardamisest – note.nkmk.me
Praktilised näited, kuidas kasutadaround()
jadecimal
moodulit, lihtsate seletustega algajatele.
Kuidas Pythonis arve ümardada
Need allikad aitavad sul veelgi paremini mõista ümardamise erinevaid meetodeid Pythonis ja nende rakendusvõimalusi.