A kerekítés egy számérték egyszerűsítése: az eredeti számot egy közel azonos, de rövidebb, könnyebben kezelhető vagy egyértelműbb számmal helyettesítjük. Például a 23,74 USD-t gyakran kerekítik 24 USD-re; a 312/937 törtet közelíthetjük 1/3-ra; vagy a 2 {\displaystyle {\sqrt {2}} kifejezést gyakran 1,41-re kerekítjük. A kerekítés gyakran szándékos, hogy könnyebben leírható vagy kommunikálható értéket kapjunk, és hogy jelezzük az egy adott szám körüli tényleges pontosságát (például 123 456 helyett „körülbelül 123 500”, ha csak néhány száz egység pontossággal rendelkezünk).
Kerekítési módszerek (gyakori szabályok)
- Legközelebbi értékre kerekítés (round to nearest): a számot a hozzá legközelebb álló kifejezésre kerekítjük (pl. 3,6 → 4; 3,4 → 3).
- Felfelé kerekítés (ceil): mindig a következő nagyobb lépésre kerekítünk (pl. 3,1 → 4).
- Lefelé kerekítés (floor): mindig a következő kisebb lépésre kerekítünk (pl. 3,9 → 3).
- Nullához közelítő kerekítés (truncate): eltávolítjuk a tört részt, azaz a kerekítés a nullához történik (pl. −3,7 → −3; 3,7 → 3).
- Félértékek kezelésének szabályai: amikor a kerekítendő szám pontosan a két kerekítési cél között van (pl. 2,5 a 0,1 pontossággal kerekítésnél), különböző szabályok léteznek:
- „Round half up” – félre felfelé: 2,5 → 3.
- „Round half away from zero” – a nullától távolabb: 2,5 → 3, −2,5 → −3.
- „Round half to even” (bankárkerekítés) – fél esetén az eredmény páros lesz: 2,5 → 2, 3,5 → 4; ez csökkenti az összeadódó elfogultságot sok kerekítésnél.
- „Round half to zero” – fél esetén a nullához közelítünk.
- Százalékos vagy jelentős számjegyek szerinti kerekítés: kerekíthetünk adott tizedesjegyre, adott egészre, vagy bizonyos számú szignifikáns jegyre (például tudományos méréseknél gyakori).
- Formális képlettel: n tizedesjegyre kerekítés általában úgy történik, hogy megszorozzuk 10^n-nel, kerekítjük egészre a választott szabály szerint, majd osztjuk vissza 10^n-nel.
Kerekítési hiba: definíció és jellemzők
A kerekítési hiba az a különbség, amely az eredeti érték és a kerekített érték között adódik. Két fontos fogalom:
- Abszolút hiba: |eredeti − kerekített|.
- Relatív hiba: abszolút hiba / |eredeti| (hasznos, ha az érték nagyságától független mértéket akarunk).
A kerekítési hibák jellemző problémái:
- Összegződés: sok kerekítés sorozatban összeadódhat, így a végső hiba jelentősen nagyobb lehet, mint egyetlen lépés hibája.
- Katastrofális kiküszöbölés (catastrophic cancellation): két hasonló nagyságú, de ellentétes előjelű szám kivonásakor a fontos jegyek elveszhetnek, és a kerekítési hiba relatív értelemben nagyon nagy lehet.
- Elfogultság: ha mindig ugyanabba az irányba kerekítünk (például mindig felfelé), akkor az összegekben szisztematikus torzítás jön létre; emiatt használják gyakran a „bankárkerekítést” nagyobb statisztikai kiegyensúlyozottságért.
Kerekítés a számítástechnikában
A kerekítés szinte elkerülhetetlen számos számítás során, különösen két szám osztásakor egész szám vagy fixpontos aritmetika esetén; olyan matematikai függvények számításakor, mint a négyzetgyök, logaritmus és szinusz; vagy olyan lebegőpontos ábrázolás esetén, ahol a szignifikáns számjegyek száma rögzített. Egy számítási sorozatban ezek a kerekítési hibák általában felhalmozódnak, és bizonyos "rossz feltételű" esetekben értelmetlenné tehetik az eredményt.
Konkrétabb megfontolások:
- Lebegőpontos ábrázolás (pl. IEEE 754): a legtöbb modern számítógép lebegőpontos formátumokat használ, amelyek meghatározott számú szignifikáns jegyet tárolnak. Az IEEE 754 szabvány különböző kerekítési módokat határoz meg, például round-to-nearest (ties to even), round-toward-zero, round-toward-positive-infinity és round-toward-negative-infinity.
- Fixpontos és egész szám aritmetika: sok beágyazott rendszer és pénzügyi alkalmazás fixpontos aritmetikát vagy egész forint/cents reprezentációt használ, hogy elkerülje a bináris lebegőpontos pontatlanságokat (például 0,1 nem pontosan reprezentálható bináris lebegőponton).
- Gátló digitok és védőjegyek: több köztes számítási lépésnél gyakran alkalmaznak „védőjegyeket” (guard digits) vagy extra pontos számolást, majd csak a végén kerekítenek vissza a kívánt pontosságra, hogy csökkentsék a kerekítésből származó hibákat.
A transzcendens függvények és a táblázatkészítő dilemma
A transzcendens matematikai függvények pontos kerekítése azért különösen nehéz, mert nem mindig előre tudhatjuk, hogy hány extra számjegyet kell kiszámítani ahhoz, hogy megbízhatóan eldöntsük, felfelé vagy lefelé kerekítsünk. Ezt a problémát a táblázatkészítő dilemmájának nevezik: ha egy függvény pontos értéke nagyon közel van a kerekítési határhoz, akkor a helyes kerekítés eldöntéséhez – elméletben – tetszőlegesen sok plusz jegy számítására lehet szükség.
A gyakorlati megoldások közé tartozik a többpontos vagy adaptív precizitású számítás (több extra jegyet számolunk, és ha még mindig nem dönthető el a kerekítés, tovább növeljük a pontosságot), illetve olyan könyvtárak használata, amelyek garantáltan helyes kerekítést biztosítanak (például bizonyos MPFR-szerű megvalósítások vagy CRlibm).
Hogyan csökkenthetők a kerekítési hibák?
- Nagyobb pontosság használata: magasabb belső precizitás (több bit vagy több tizedesjegy) csökkenti a kerekítési hibát.
- Rendezés és összeadás szabályai: összeadáskor előnyös a hasonló nagyságrendű számok összeadását végezni; a Kahan-kompenzált összeadás vagy más kompenzáló algoritmusok csökkentik az összeadódó hibákat.
- Interval- vagy hibaterjedési számítás: intervallumaritmetika segítségével garantálható, hogy a valódi érték egy ismert intervallumban van; ez hasznos ellenőrzéshez és hibabecsléshez.
- Pontosság megtartása a végső kerekítésig: ahol lehetséges, a kerekítést a számítási folyamat végére halasszuk.
- Megfelelő adattípus választása: pénzügyi alkalmazásoknál gyakori a decimális fixpontos típus használata (pl. cent- vagy forint-alapú egész számok), hogy elkerüljük a bináris lebegőpontos pontatlanságokat.
- Válasszunk kiegyensúlyozott kerekítési szabályt: ha sok kerekítést végzünk, a párosra kerekítés (bankérkítés) csökkentheti a torzítást.
- Analitikus átrendezés: matematikai képletek átírása, hogy kevesebb veszélyes művelet (pl. hasonló nagyságú mennyiségek kivonása) forduljon elő.
Kvantálás és kapcsolat más területekkel
A kerekítés sok szempontból hasonlít a kvantáláshoz: amikor fizikai mennyiségeket vagy analóg jeleket digitális értékekké alakítunk, akkor az értékeket meghatározott rácspontokra (diszkrét set) kényszerítjük. Ugyanúgy, mint a kerekítésnél, itt is keletkezik információvesztés és hibaforrás; a kvantálás és a kerekítés módszerei, hibakezelése és hatásai sok tekintetben analógok a számítástechnikában használt kerekítési problémákhoz (digitális jelek terén is fontosak ezek a szempontok).
Összegzésképp: a kerekítés egyszerre praktikus és veszélyforrás — megkönnyíti az adatok kezelését és kommunikációját, de hibát visz be a számításokba. Tudatos kerekítési szabályok, megfelelő adattípusok és numerikus módszerek alkalmazásával a hibák hatékonyan kezelhetők és minimalizálhatók.