Pyöristäminen

Luvun pyöristäminen eli pyöristys on luvun numeerisen arvon korvaaminen sen likiarvolla. Likiarvo on lyhyempi, yksinkertaisempi tai selvempi esitys luvusta – esim. desimaaliluku 23,4476 korvataan lyhyemmällä 23,45:llä, murtoluku 312/937 yksinkertaisemmalla 1/3:lla tai irrationaaliluku  luvulla 1,41.

Johdanto

Lukuja pyöristetään, jotta saadaan helpommin kirjoitettava tai käsiteltävä arvo alkuperäiselle luvulle. Numeerisessa laskennassa lukuja on pyöristettävä, koska tietokoneen muistissa niille on varattu äärellinen määrä bittejä. Pyöristämällä voidaan lisäksi osoittaa lasku- tai mittaustuloksen tarkkuus – on saatu esim. tulos 123 456, mutta sen tiedetään olevan tarkka vain sadan tarkkuudella, joten se pyöristetään lähimpään sataan eli 123 500:aan. Lukujen pyöristäminen aiheuttaa pyöristysvirheitä laskutoimituksissa ja mittausdatan käsittelyssä. Laskutoimituksissa pyöristämistä on useimmiten mahdotonta välttää – esimerkkeinä π, neliöjuuret, logaritmit ja trigonometriset funktiot. Reaaliluvut muutetaan numeerisessa laskennassa liukuluvuiksi joko katkaisemalla tai pyöristämällä. Koska liukuluku on vain approksimaatio reaaliluvulle, pyöristysvirheet ovat väistämättömiä.

Pyöristys lisäysmonikertaan

Luvun x pyöristäminen lisäyksen m monikerraksi z tapahtuu yleisesti seuraavasti:
z = pyöristys(x / m) × m
Esim. pyöristetään x = 2,1784 € sentin tarkkuuteen eli 0,01:n monikerraksi:
y = x / m = 2,1784 / 0,01 = 217,84
Pyöristetään y kokonaisluvuksi:
z = q × m = 218 × 0,01 = 2,18

Tie-breaking-säännöt

Kun luku y on täsmälleen kahden kokonaisluvun puolivälissä eli sen desimaaliosa on tasan 0,5, sen pyöristämisessä lähimpään kokonaislukuun on käytettävä ns. tie-breaking–sääntöjä.
Pyöristäminen ylöspäin: q = y + 0,5. Esim. arvo 23,5 pyöristyy arvoon 24 ja arvo –23,5 arvoon -23. Siis aina kohti ääretöntä. Menettely on asymmetrinen ja aiheuttaa positiivisen pyöristysvirheen. Tätä käytetään kuitenkin yleisesti monella tieteenalalla.
Pyöristäminen alaspäin: q = y – 0,5. Esim. 23,5 pyöristyy arvoon 23 ja −23,5 arvoon −24. Menettely on asymmetrinen ja aiheuttaa negatiivisen pyöristysvirheen.
Pyöristäminen nollasta poispäin: kun y on positiivinen, pyöristetään ylöspäin (q = y + 0,5), ja kun y on negatiivinen, pyöristetään alaspäin (q = y – 0,5). Esim. 23,5 pyöristyy lukuun 24 ja −23,5 lukuun −24. Menettely kohtelee positiivisia ja negatiivisia arvoja symmetrisesti eli ei aiheuta pyöristysvirhettä kumpaankaan suuntaan, jos pyöristettävät luvut ovat positiivisia ja negatiivisia samalla todennäköisyydellä. Menettelyä käytetään usein esim. valuuttamuunnoksissa ja hinnanpyöristyksissä.
Pyöristäminen nollaan päin: y on positiivinen, pyöristetään alaspäin (q = y − 0,5), ja kun y on negatiivinen, pyöristetään ylöspäin (q = y + 0,5). Esim. 23,5 pyöristyy lukuun 23 ja −23,5 lukuun −23.
Pyöristäminen lähimpään parilliseen kokonaislukuun: esim. 23,5 pyöristyy lukuun 24, 22,5 lukuun 22, −22,5 lukuun −22 ja −23,5 lukuun −24. Menetelmä on symmetrinen eli ottaa huomioon vain luvun itseisarvon. Menetelmä aiheuttaa kuitenkin positiivisen virheen parillisille luvuille ja negatiivisen virheen parittomille luvuille. Tästä huolimatta menetelmä on yleisesti käytössä kirjanpidossa, liukulukustandardissa IEEE-754 ja useissa ohjelmointikielissä, esim. Javassa. Sitä kutsutaan yleisesti nimillä pankkiirin, puolueeton, suppeneva, tilastotieteilijän, hollantilainen ja Gaussian-pyöristäminen.
Pyöristäminen lähimpään parittomaan kokonaislukuun: esim. 22,5 pyöristyy lukuun 23, 21,5 lukuun 21, −21,5 lukuun −21 ja −22,5 lukuun −23. Menetelmä ei ole yleisesti käytössä, paitsi tapauksissa, joissa halutaan välttää 0,5:n ja −0,5:n pyöristämistä nollaan.
Sattumanvaraisessa pyöristämisessä luku y, jonka desimaaliosa on tarkalleen 0,5, pyöristetään sattumanvaraisesti ylös- tai alaspäin: q = y + 0,5 tai q = y – 0,5 yhtä suurella todennäköisyydellä. Menetelmä ei aiheuta juurikaan virhettä positiivisille ja negatiivisille luvuille eikä parillisille ja parittomille luvuille. Menetelmä aiheuttaa kuitenkin sattumanvaraisuutta tulokseen, eli samasta datasta voidaan saada erilaiset tulokset kahdella eri laskukerralla.
Vuorottelevassa pyöristämisessä luku y, jonka desimaaliosa on tarkalleen 0,5, pyöristetään vuorotellen ylös- tai alaspäin: q = y + 0,5 tai q = y – 0,5. Menetelmä pienentää tuloksen sattumanvaraisuudesta johtuvaa osuutta mutta aiheuttaa silti negatiivisen tai positiivisen virheen mikäli desimaalilukuja, joiden desimaaliosa on tasan 0,5, on pariton määrä.

Pyöristysvirhe

Pyöristysvirhe on ero luvun likiarvon ja tarkan matemaattisen arvon välillä. 
Numeerisessa laskennassa pyöristysvirheet johtuvat siitä, että liukulukujen esitykseen on varattu äärellinen määrä bittejä tietokoneen muistissa. Pyöristysvirhettä syntyy sekä lähtöarvoihin että laskennan aikana. Alkuarvoissa pyöristysvirhe voi johtua luvun irrationaalisuudesta (π, ) tai siitä, että sillä on päättymätön esitysmuoto binäärijärjestelmässä (0,1₁₀ = 0,00011001...₂).
Virheen minimoimisessa on tärkeää, että lähtöarvoissa oleva virhe tai jossakin vaiheessa laskentaa syntyvä virhe ei kasva liian suureksi loppuarvoissa. Pyöristysvirheitä voidaan välttää minimoimalla aritmeettisten operaatioiden määrä esimerkiksi sieventämällä analyyttisiä kaavoja sekä pyöristämällä vain lopputulokset ja pitämällä laskentatarkkuus riittävän suurena. Pyöristysvirheet voivat kasautua esim. sarjojen summauksissa ja iteraatioissa. 
Laskettaessa yhteen hyvin erisuuruisia lukuja voi käydä niin, että pienemmän luvun suuruus on samaa luokkaa kuin suuremman luvun tarkkuus, joten sillä ei ole mitään vaikutusta lopputulokseen. Tällöin laskenta-algoritmia kannattaa muuttaa ja vaihtaa laskukaava numeerisesti erilaiseen muotoon.
Laskutoimitusten tuloksia on myös pyöristettävä. Likiarvolaskun tarkkuus voidaan osoittaa ilmoittamalla kuinka monella merkitsevällä numerolla tulos halutaan tai ilmoittamalla virheen yläraja tai desimaalien lukumäärä ja käytetty mittayksikkö (Mittayksikön tarkkuudella esim. 1,440 kg on ilmoitettu gramman tarkkuudella ja 38 345 m² on 4 ha ilmoitettuna hehtaarin tarkkuudella.)
Lisäksi on huomioitava, että lukujen katkaisu voi aiheuttaa vielä suuremman virheen kuin pyöristäminen. Se voi olla kaksinkertainen lukujen pyöristyksestä aiheutuvaan virheen maksimiin.