Zaokrožanje

Beseda "zaokroževanje" za številsko vrednost pomeni, da jo nadomestimo z drugo vrednostjo, ki je približno enaka, vendar ima krajšo, enostavnejšo ali bolj jasno obliko. Na primer, 23,74 ameriških dolarjev lahko zaokrožimo na 24 ameriških dolarjev, delež 312/937 lahko zaokrožimo na 1/3 ali izraz 2 {\displaystyle {\sqrt {2}}}{\displaystyle {\sqrt {2}}} na 1,41.

Zaokroževanje se pogosto izvaja namenoma, da bi dobili vrednost, ki jo je lažje zapisati in obdelati kot prvotno. Zaokroži se lahko tudi zato, da se označi natančnost izračunanega števila; na primer količino, ki je bila izračunana kot 123 456, vendar je znano, da je natančna le na nekaj sto enot, je bolje navesti kot "približno 123 500".

Po drugi strani pa lahko zaokroževanje v rezultat vnese napako zaokroževanja. Zaokroževanje je skoraj neizogibno pri številnih izračunih, zlasti pri deljenju dveh števil v celoštevilski aritmetiki ali aritmetiki s fiksno vejico; pri izračunavanju matematičnih funkcij, kot so kvadratni koreni, logaritmi in sinusi; ali pri uporabi predstavitev s plavajočovejico s fiksnim številom pomembnih številk. V zaporedju izračunov se te zaokrožitvene napake na splošno kopičijo in v nekaterih "slabo pogojenih" primerih lahko povzročijo, da je rezultat nesmiseln.

Natančno zaokroževanje transcendentnih matematičnih funkcij je težavno, ker ni mogoče vnaprej poznati števila dodatnih števk, ki jih je treba izračunati, da se odloči, ali se zaokroži navzgor ali navzdol. Ta problem je znan kot "dilema izdelovalca tabel" (spodaj).

Zaokroževanje je v marsičem podobno kvantizaciji, ki se pojavi, ko je treba fizikalne količine kodirati s številkami ali digitalnimi signali.

Vrste zaokroževanja

Tipične težave z zaokroževanjem so:

  • približek iracionalnega števila z ulomkom, npr. π z 22/7;
  • aproksimacija ulomka s periodičnim decimalnim razvojem s končnim decimalnim ulomkom, npr. 5/3 z 1,6667;
  • zamenjava racionalnega števila z ulomkom z manjšim števcem in imenovalcem, npr. 3122/9417 z 1/3;
  • zamenjava decimalne številke z manj številkami, npr. 2,1784 dolarja z 2,18 dolarja;
  • zamenjava decimalnega celega števila s celim številom z več ničlami na koncu, npr. 23.217 ljudi s 23.200 ljudi; ali na splošno,
  • zamenjava vrednosti z večkratnikom določenega zneska, npr. 27,2 sekunde s 30 sekundami (večkratnik 15).

Zaokroževanje na določen korak

Najpogostejša vrsta zaokroževanja je zaokroževanje na celo število ali, splošneje, na celoštevilski večkratnik nekega prirastka - na primer zaokroževanje na cele desetinke sekunde, stotinke dolarja, na cele večkratnike 1/2 ali 1/8 palca, na cele desetine ali tisoče itd.

Na splošno zaokroževanje števila x na večkratnik določenega prirastka m poteka v naslednjih korakih:

  1. Delite x z m, rezultat naj bo y;
  2. zaokrožite y na celoštevilsko vrednost in jo imenujte q;
  3. Pomnožite q z m, da dobite zaokroženo vrednost z.

z = r o u n d ( x , m ) = r o u n d ( x / m ) m {\displaystyle z=\mathrm {round} (x,m)=\mathrm {round} (x/m)\cdot m\,} {\displaystyle z=\mathrm {round} (x,m)=\mathrm {round} (x/m)\cdot m\,}

Če na primer zaokrožimo x = 2,1784 dolarja na cele cente (tj. na večkratnik 0,01), izračunamo y = x/m = 2,1784/0,01 = 217,84, nato y zaokrožimo na celo število q = 218 in nazadnje izračunamo z = q×m = 218×0,01 = 2,18.

Pri zaokroževanju na vnaprej določeno število pomembnih števk je prirastek m odvisen od velikosti števila, ki ga je treba zaokrožiti (ali zaokroženega rezultata).

Prirastek m je običajno končni delež v katerem koli številskem sistemu, ki se uporablja za predstavitev števil. Za prikazovanje ljudem to običajno pomeni desetiški številski sistem (to pomeni, da je m celo število, pomnoženo z močjo 10, na primer 1/1000 ali 25/100). Za vmesne vrednosti, shranjene v digitalnih računalnikih, to pogosto pomeni binarni številski sistem (m je celo število, pomnoženo z močjo 2).

Abstraktna funkcija z enim argumentom "round()", ki iz poljubne realne vrednosti vrne celo število, ima vsaj ducat različnih konkretnih definicij, predstavljenih v razdelku o zaokroževanju na cela števila. Abstraktna dvoargumentna funkcija "round()" je formalno opredeljena tukaj, vendar se v mnogih primerih uporablja z implicitno vrednostjo m = 1 za prirastek in se nato zmanjša na enakovredno abstraktno enoargumentno funkcijo, ki ima prav tako ducat različnih konkretnih definicij.

Zaokroževanje na celo število

Najosnovnejša oblika zaokroževanja je zamenjava poljubnega števila s celim številom. Vsi naslednji načini zaokroževanja so konkretne izvedbe abstraktne funkcije z enim argumentom "round()", ki je bila predstavljena in uporabljena v prejšnjih razdelkih.

Število y lahko zaokrožimo na celo število q na več načinov.

  • zaokrožite navzdol (ali vzemite dno ali zaokrožite proti minus neskončnosti): q je največje celo število, ki ne presega y.

q = f l o o r ( y ) = y = - - y {\displaystyle q=\mathrm {floor} (y)=\levo\lfloor y\pravo\rfloor =-\levo\lceil -y\pravo\rceil \,} {\displaystyle q=\mathrm {floor} (y)=\left\lfloor y\right\rfloor =-\left\lceil -y\right\rceil \,}

  • zaokrožite navzgor (ali vzemite zgornjo mejo, ali zaokrožite proti plus neskončnosti): q je najmanjše celo število, ki ni manjše od y.

q = c e i l ( y ) = y = - - y {\displaystyle q=\mathrm {ceil} (y)=\levo\lceil y\pravo\rceil =-\levo\lfloor -y\pravo\rfloor \,} {\displaystyle q=\mathrm {ceil} (y)=\left\lceil y\right\rceil =-\left\lfloor -y\right\rfloor \,}

  • zaokrožite proti ničli (ali odrežite, ali zaokrožite stran od neskončnosti): q je celoštevilski del y brez številk ulomka.

q = t r u n k a ( y ) = sgn ( y ) | y | = - sgn ( y ) - | y | {\displaystyle q=\mathrm {truncate} (y)=\operatername {sgn}(y)\left\lfloor \left|y\right|\right\rfloor =-\operatorname {sgn}(y)\left\lceil -\left|y\right|\right\rceil \,} {\displaystyle q=\mathrm {truncate} (y)=\operatorname {sgn}(y)\left\lfloor \left|y\right|\right\rfloor =-\operatorname {sgn}(y)\left\lceil -\left|y\right|\right\rceil \,}

  • zaokrožite od nič (ali proti neskončnosti): če je y celo število, je q y; sicer je q celo število, ki je najbližje 0 in je tako, da je y med 0 in q.

q = sgn ( y ) | y | = - sgn ( y ) - | y | {\displaystyle q=\operatorname {sgn}(y)\left\lceil \left|y\right|\rceil =-\operatorname {sgn}(y)\left\lfloor -\left|y\right|\right\rfloor \,} {\displaystyle q=\operatorname {sgn}(y)\left\lceil \left|y\right|\right\rceil =-\operatorname {sgn}(y)\left\lfloor -\left|y\right|\right\rfloor \,}

  • zaokrožite na najbližje: q je celo število, ki je najbližje y (pravila za izenačevanje glej spodaj).

Prve štiri metode imenujemo usmerjeno zaokroževanje, saj so vsi premiki od prvotnega števila y do zaokrožene vrednosti q usmerjeni proti isti mejni vrednosti (0, +∞ ali -∞) ali od nje.

Če je y pozitiven, je zaokroževanje navzdol enako zaokroževanju proti ničli, zaokroževanje navzgor pa je enako zaokroževanju od ničle. Če je y negativen, je zaokrožitev navzdol enaka zaokrožitvi stran od nič, zaokrožitev navzgor pa je enaka zaokrožitvi proti nič. V vsakem primeru, če je y celo število, je q samo y. Naslednja tabela prikazuje te metode zaokroževanja:

y

zaokrožitev
(v smeri -∞)

zaokrožitev
(v smeri +∞)

zaokroževanje proti ničli

oddaljevanje
od ničle

okrogla najbližja stran

+23.67

+23

+24

+23

+24

+24

+23.50

+23

+24

+23

+24

+23 ali +24

+23.35

+23

+24

+23

+24

+23

+23.00

+23

+23

+23

+23

+23

0

0

0

0

0

0

−23.00

−23

−23

−23

−23

−23

−23.35

−24

−23

−23

−24

−23

−23.50

−24

−23

−23

−24

-23 ali -24

−23.67

−24

−23

−23

−24

−24

Kadar se več izračunov izvaja zaporedno, lahko izbira metode zaokroževanja zelo pomembno vpliva na rezultat. Znan primer je bil nov indeks, ki ga je leta 1982 oblikovala borza v Vancouvru. Na začetku je bil indeks postavljen na 1000.000, po 22 mesecih pa je padel na približno 520, medtem ko so se cene delnic v tem obdobju na splošno povečale. Težava je nastala, ker se je indeks dnevno tisočkrat preračunaval in vedno zaokroževal na tri decimalna mesta navzdol, tako da so se napake pri zaokroževanju kopičile. Ponovni izračun z boljšim zaokroževanjem je ob koncu istega obdobja dal vrednost indeksa 1098,892.

Izenačitev

Za zaokroževanje števila y na najbližje celo število je potrebno pravilo za izenačevanje v primerih, ko je y natanko na polovici poti med dvema celima številoma, to je, ko je del y v obliki ulomka natanko 0,5.

Okrogla polovica navzgor

Naslednje pravilo za izenačitev, ki se imenuje zaokrožitev za polovico navzgor (ali zaokrožitev za polovico proti neskončnosti plus neskončnost), se pogosto uporablja v številnih disciplinah. To pomeni, da se polovične vrednosti y vedno zaokrožijo navzgor.

  • Če je delež y natanko 0,5, potem je q = y + 0,5.

q = y + 0,5 = - - y - 0,5 {\displaystyle q=\levo\lfloor y+0,5\desno\rfloor =-\levo\lceil -y-0,5\desno\rceil \,} {\displaystyle q=\left\lfloor y+0.5\right\rfloor =-\left\lceil -y-0.5\right\rceil \,}

Po tem pravilu se na primer vrednost 23,5 zaokroži na 24, vrednost -23,5 pa na -23.

To je eno od dveh pravil, ki se običajno poučujeta pri pouku matematike v ZDA. []

Če ne bi šlo za deleže 0,5, bi bile napake zaokroževanja, ki jih povzroča metoda zaokroževanja na najbližje, precej simetrične: za vsak delež, ki se zaokroži navzgor (npr. 0,268), obstaja dopolnilni delež (npr. 0,732), ki se zaokroži navzdol za enako količino. Pri zaokroževanju velike množice števil z naključnimi ulomki bi se te napake pri zaokroževanju statistično kompenzirale in pričakovana (povprečna) vrednost zaokroženih števil bi bila enaka pričakovani vrednosti izvirnih števil.

Vendar pravilo zaokroževanja polovice navzgor ni simetrično, saj se deleži, ki so natanko 0,5, vedno zaokrožijo navzgor. Ta nesimetričnost povzroča pozitivno pristranskost napak pri zaokroževanju. Če je na primer delež y sestavljen iz treh naključnih decimalnih številk, bo pričakovana vrednost q za 0,0005 višja od pričakovane vrednosti y. Zaradi tega je zaokroževanje s pravilom zaokroževanja na polovico navzgor (dvoumno) znano tudi kot asimetrično zaokroževanje.

Eden od razlogov za zaokroževanje na 0,5 je, da je treba preveriti samo eno številko. Če na primer vidimo 17,50000..., prve tri številke, 17,5, določajo, da se številka zaokroži navzgor na 18. Če bi uporabili nasprotno pravilo (zaokroževanje za polovico navzdol), bi bilo treba pregledati vse decimalne številke, da bi ugotovili, ali je vrednost natanko 17,5.

Okrogla polovica navzdol

Uporabimo lahko tudi zaokrožitev za polovico navzdol (ali zaokrožitev za polovico proti minus neskončnosti) namesto bolj običajne zaokrožitve za polovico navzgor (metoda zaokrožitve za polovico navzgor je običajna konvencija, vendar ni nič drugega kot konvencija).

  • Če je delež y natanko 0,5, potem je q = y - 0,5.

q = y - 0,5 = - - y + 0,5 {\displaystyle q=\levo\lceil y-0,5\desno\rceil =-\levo\lfloor -y+0,5\desno\rfloor \,} {\displaystyle q=\left\lceil y-0.5\right\rceil =-\left\lfloor -y+0.5\right\rfloor \,}

Na primer, 23,5 se zaokroži na 23, -23,5 pa na -24.

Pravilo zaokroževanja polovice navzdol pri izenačitvi ni simetrično, saj se ulomki, ki so natanko 0,5, vedno zaokrožijo navzdol. Ta nesimetričnost povzroča negativno pristranskost napak pri zaokroževanju. Če je na primer delež y sestavljen iz treh naključnih decimalnih številk, bo pričakovana vrednost q za 0,0005 nižja od pričakovane vrednosti y. Zaradi tega je zaokroževanje s pravilom zaokroževanja na pol navzdol (dvoumno) znano tudi kot asimetrično zaokroževanje.

Okrogla polovica od ničle

Druga metoda, ki se pogosto poučuje in uporablja, je zaokrožitev polovice od nič (ali zaokrožitev polovice proti neskončnosti), in sicer:

  • Če je delež y natanko 0,5, potem je q = y + 0,5, če je y pozitiven, in q = y - 0,5, če je y negativen.

q = sgn ( y ) | y | + 0,5 = - sgn ( y ) - | y | - 0,5 {\displaystyle q=\operatorname {sgn}(y)\left\lfloor \left|y\right|+0.5\right\rfloor =-\operatorname {sgn}(y)\left\lceil -\left|y\right|-0,5\right\rceil \,} {\displaystyle q=\operatorname {sgn}(y)\left\lfloor \left|y\right|+0.5\right\rfloor =-\operatorname {sgn}(y)\left\lceil -\left|y\right|-0.5\right\rceil \,}

Na primer, 23,5 se zaokroži na 24, -23,5 pa na -24.

Ta metoda simetrično obravnava pozitivne in negativne vrednosti, zato je brez splošne pristranskosti, če so izvirna števila pozitivna ali negativna z enako verjetnostjo. Vendar pa to pravilo še vedno povzroči pozitivno pristranskost za pozitivna števila in negativno pristranskost za negativna števila.

Pogosto se uporablja za pretvorbe valut in zaokroževanje cen (ko se znesek najprej pretvori v najmanjšo pomembno delitev valute, kot so centi v evrih), saj ga je enostavno razložiti samo z upoštevanjem prve ulomne številke, ne glede na dodatne številke natančnosti ali znak zneska (za strogo enakovrednost med plačnikom in prejemnikom zneska).

Okrogla polovica proti ničli

Prav tako lahko polovico zaokrožimo proti ničli (ali polovico stran od neskončnosti) v nasprotju z bolj običajnim zaokroževanjem polovice stran od ničle (metoda zaokroževanja polovice stran od ničle je običajna konvencija, vendar ni nič drugega kot konvencija).

  • Če je delež y natanko 0,5, potem je q = y - 0,5, če je y pozitiven, in q = y + 0,5, če je y negativen.

q = sgn ( y ) | y | - 0,5 = - sgn ( y ) - | y | + 0,5 {\displaystyle q=\operatorname {sgn}(y)\left\lceil \left|y\right|-0.5\right\rceil =-\operatorname {sgn}(y)\left\lfloor -\left|y\right|+0,5\right\rfloor \,} {\displaystyle q=\operatorname {sgn}(y)\left\lceil \left|y\right|-0.5\right\rceil =-\operatorname {sgn}(y)\left\lfloor -\left|y\right|+0.5\right\rfloor \,}

Na primer, 23,5 se zaokroži na 23, -23,5 pa na -23.

Ta metoda tudi simetrično obravnava pozitivne in negativne vrednosti, zato je brez splošne pristranskosti, če so izvirna števila pozitivna ali negativna z enako verjetnostjo. Vendar pa to pravilo še vedno povzroči negativno pristranskost za pozitivna števila in pozitivno pristranskost za negativna števila.

Zaokrožite polovico na enakomerno

Še manj pristransko pravilo za izenačenje je zaokrožitev na polovico do enakega števila, in sicer

  • Če je delež y enak 0,5, potem je q celo število, ki je najbližje y.

Tako na primer +23,5 postane +24, +22,5 postane +22, -22,5 postane -22 in -23,5 postane -24.

Ta metoda tudi simetrično obravnava pozitivne in negativne vrednosti, zato je brez splošne pristranskosti, če so izvirna števila pozitivna ali negativna z enako verjetnostjo. Poleg tega je pri večini razumnih porazdelitev vrednosti y pričakovana (povprečna) vrednost zaokroženih števil v bistvu enaka vrednosti izvirnih števil, tudi če so ta vsa pozitivna (ali vsa negativna). Vendar bo to pravilo še vedno vneslo pozitivno pristranskost za liha števila (vključno z ničlo) in negativno pristranskost za liha števila.

Ta različica metode zaokroževanja od najbližjega do najbližjega se imenuje tudi nepristransko zaokroževanje (dvoumno in nekoliko zlorabljeno), konvergentno zaokroževanje, statistično zaokroževanje, nizozemsko zaokroževanje, Gaussovo zaokroževanje ali bančno zaokroževanje. To se pogosto uporablja v knjigovodstvu.

To je privzeti način zaokroževanja, ki se uporablja v računskih funkcijah in operatorjih IEEE 754.

Zaokrožite polovico na liho

Drugo pravilo za izenačenje, ki je zelo podobno pravilu zaokrožitve polovice do enakega števila, in sicer

  • Če je delež y enak 0,5, je q liho celo število, ki je najbližje y.

Tako na primer +22,5 postane +23, +21,5 postane +21, -21,5 postane -21 in -22,5 postane -23.

Ta metoda tudi simetrično obravnava pozitivne in negativne vrednosti, zato je brez splošne pristranskosti, če so izvirna števila pozitivna ali negativna z enako verjetnostjo. Poleg tega je pri večini razumnih porazdelitev vrednosti y pričakovana (povprečna) vrednost zaokroženih števil v bistvu enaka vrednosti izvirnih števil, tudi če so ta vsa pozitivna (ali vsa negativna). Vendar bo to pravilo še vedno vneslo negativno pristranskost za liha števila (vključno z ničlo) in pozitivno pristranskost za liha števila.

Ta različica se pri večini izračunov skoraj nikoli ne uporablja, razen v primerih, ko se želimo izogniti zaokroževanju 0,5 ali -0,5 na nič ali se izogniti povečanju lestvice števil, predstavljenih kot števila s plavajočo vejico (z omejenimi razponi za eksponent za skaliranje), tako da bi neskončno število zaokrožili na neskončno ali da bi majhna denormalna vrednost zaokrožili na običajno neničelno vrednost (to se lahko zgodi z načinom zaokroževanja polovice na celo). Ta način dejansko raje ohranja obstoječo lestvico veznih števil in se, če je le mogoče, izogne rezultatom zunaj razpona.

Stohastično zaokroževanje

Druga nepristranska metoda za izenačitev je stohastično zaokroževanje:

  • Če je ulomek y enak ,5, z enako verjetnostjo naključno izberite q med y + 0,5 in y - 0,5.

Podobno kot pri pravilu zaokrožitev na polovico do sodo tudi pri tem pravilu ni splošne pristranskosti, vendar je prav tako pošteno med sodimi in lihimi vrednostmi q. Po drugi strani pa v rezultat vnaša naključno komponento; dvakratno izvajanje istega izračuna na istih podatkih lahko da dva različna rezultata. Prav tako je izpostavljena nezavedni pristranskosti, če se ljudje (in ne računalniki ali naključne naprave) "naključno" odločajo, v katero smer je treba zaokrožiti.

Izmenično odločanje z neodločenim izidom

Ena od metod, ki je bolj nejasna kot večina drugih, je izmenična uporaba okrogle polovice.

  • Če je ulomek 0,5, izmenično zaokrožujte navzgor in navzdol: pri prvem pojavu ulomka 0,5 zaokrožite navzgor, pri drugem pojavu navzdol in tako naprej.

To odpravi naključno komponento rezultata, če je mogoče učinkovito oštevilčiti pojavljanje 0,5 delnih delov. Če je skupno število pojavitev liho, lahko še vedno povzroči pozitivno ali negativno pristranskost glede na smer zaokroževanja, ki je dodeljena prvi pojavitvi.

Enostavno dithering

V nekaterih okoliščinah so lahko vse zgoraj navedene metode zaokroževanja nezadovoljive. Predpostavimo na primer, da je y natančna meritev zvočnega signala, ki se zaradi zmanjšanja stroškov shranjevanja ali prenosa zaokroži na celo število q. Če se y s časom spreminja počasi, bo katera koli od zgornjih metod zaokroževanja povzročila, da bo q v dolgih časovnih intervalih popolnoma konstanten, ločen z nenadnimi skoki za ±1. Pri predvajanju signala q se bodo ti koraki slišali kot zelo neprijeten šum, vse spremembe prvotnega signala med dvema celoštevilskima vrednostma pa se bodo popolnoma izgubile.

Eden od načinov, kako se izogniti tej težavi, je, da vsako vrednost y zaokrožimo navzgor z verjetnostjo, ki je enaka njenemu deležu, in navzdol z dopolnilom te verjetnosti. Na primer, število 23,17 bi zaokrožili navzgor na 24 z verjetnostjo 0,17 in navzdol na 23 z verjetnostjo 1 - 0,17 = 0,83. (To je enakovredno zaokroževanju navzdol y + s, kjer je s naključno število, enakomerno porazdeljeno med 0 in 1.) S tem posebnim zaokroževanjem, znanim kot dithering, se nenadni koraki nadomestijo z manj motečim šumom in celo majhne spremembe v prvotnem signalu se do neke mere ohranijo. Podobno kot stohastični pristop k izenačitvi tudi dithering nima pristranskosti: če so vse vrednosti ulomkov enako verjetne, je zaokrožitev navzgor za določeno vrednost enako verjetna kot zaokrožitev navzdol za isto vrednost; enako velja za vsoto več zaokroženih števil. Po drugi strani pa dithering v rezultat vnaša naključno komponento, ki je veliko večja kot pri stohastičnem izenačevanju.

Natančneje, napaka zaokroževanja za vsako diterirano število bo enakomerno porazdeljena naključna spremenljivka s srednjo vrednostjo nič, vendar s standardnim odklonom 1 / 12 ≈ 0,2886 {\displaystyle 1/{\sqrt {12}}\aprox 0,2886} {\displaystyle 1/{\sqrt {12}}\approx 0.2886}, kar je bolje od standardnega odklona 1/2 pri preprostih napovednih metodah, vendar nekoliko več kot pri preprostejši stohastični metodi. Vendar bo vsota n zaokroženih števil naključna spremenljivka s pričakovano napako nič, vendar s standardnim odklonom n / 12 {\displaystyle {\sqrt {n}}/{\sqrt {12}}} {\displaystyle {\sqrt {n}}/{\sqrt {12}}}(skupni preostali šum), ki se polkvadratično odmika in je lahko zaznaven, čeprav bo standardni odklon napake zaokroževanja na vzorec 1 / 12 n {\displaystyle 1/{\sqrt {12n}}{\displaystyle 1/{\sqrt {12n}}}, ki počasi polkvadratično konvergira k ničli. Zato je lahko ta naključna porazdelitev še vedno prevelika za nekatere aplikacije, ki zaokrožujejo veliko podatkov.

Večdimenzionalni dithering

Ta različica preproste metode ditheringa še vedno zaokroži vrednosti z verjetnostjo, ki je enaka njenemu deležu. Vendar se namesto uporabe naključne porazdelitve za zaokroževanje izoliranih vzorcev napaka zaokroževanja, ki se pojavi pri vsakem zaokroženem vzorcu, sešteje za naslednje okoliške elemente za vzorčenje ali izračun; ta nakopičena vrednost se nato doda vrednosti teh naslednjih vzorčenih ali izračunanih vrednosti za zaokroževanje, tako da bodo spremenjene vrednosti upoštevale to razliko z uporabo napovednega modela (kot je Floyd-Steinberg dithering).

Spremenjene vrednosti nato zaokrožimo s katero koli od zgoraj navedenih metod zaokroževanja, najboljše pa so stohastične ali dithering metode: v tem zadnjem primeru bo vsota n zaokroženih števil še vedno naključna spremenljivka s pričakovano napako nič, vendar z odličnim stalnim standardnim odklonom 1/12 {\displaystyle 1/{\sqrt {12}}. {\displaystyle 1/{\sqrt {12}}}, namesto da bi se polkvadratično razhajala pri ditheringu izoliranih vzorcev; skupno povprečno odstopanje napake zaokroževanja na zaokrožen vzorec pa bo 1 / ( n 12 ) {\displaystyle 1/(n{\sqrt {12}})}, {\displaystyle 1/(n{\sqrt {12}})}ki bo hiperbolično konvergirala k ničli, hitreje kot pri polhiperbolični konvergenci pri ditheringu izoliranih vzorcev.

V praksi se pri zaokroževanju velikih nizov vzorčenih podatkov (na primer pri upodabljanju zvoka, slik in videoposnetkov) kopičenje napak zaokroževanja najpogosteje uporablja s preprostim napovednim zaokroževanjem spremenjenih vrednosti (kot je zaokroževanje proti ničli), saj se tako še vedno ohrani hiperbolična konvergenca k ničli za celotno povprečno pristranskost napake zaokroževanja in njen standardni odklon. Ta izboljšava se pogosto uporablja pri obdelavi slik in zvoka (zlasti pri natančnem spreminjanju velikosti in izravnavi, kjer lahko preprosto verjetnostno zaokroževanje izoliranih vrednosti še vedno povzroči zaznaven šum, včasih celo hujši od učinkov moire, ki se pojavijo pri preprostih neverjetnostnih metodah zaokroževanja, uporabljenih za izolirane vzorce).

Učinkovito širjenje nakopičenih napak zaokroževanja je lahko odvisno od diskretne razsežnosti vzorčenih podatkov za zaokroževanje: pri vzorčenju dvodimenzionalnih slik, vključno z barvnimi slikami (ki dodajajo diskretno razsežnost barvnih ravnin), ali tridimenzionalnih videoposnetkov (ki dodajajo diskretno časovno razsežnost), ali polifoničnih zvočnih podatkov (z uporabo diskretnih časovnih in kanalskih razsežnosti) je morda še vedno bolje razširiti to napako v prednostno smer ali enako v več pravokotnih razsežnosti, kot sta vertikalno proti vodoravno pri dvodimenzionalnih slikah ali v vzporedne barvne kanale na istem položaju in/ali s časovnim žigom ter glede na druge lastnosti teh ortogonalnih diskretnih dimenzij (v skladu z modelom zaznavanja). V teh primerih se lahko uporabi več akumulatorjev zaokrožitvenih napak (vsaj eden za vsako diskretno dimenzijo) ali (n-1)-dimenzijski vektor (ali matrika) akumulatorjev.

V nekaterih od teh primerov se lahko diskretne dimenzije podatkov za vzorčenje in zaokrožitev obravnavajo neortogonalno: Pri delu z barvnimi slikami se lahko na primer podatki trikromatskih barvnih ravnin v vsaki fizični dimenziji (višina, širina in po možnosti čas) prerazporedijo z uporabo zaznavnega barvnega modela, tako da bodo akumulatorji napak zaokroževanja zasnovani tako, da bodo ohranjali svetlost z večjo verjetnostjo kot odtenek ali nasičenost, namesto da bi se napake širile v vsako ortogonalno barvno ravnino posebej; pri stereozvočnih zvočnih podatkih se lahko zaokrožita dva zaokrožena podatkovna kanala (levi in desni), da se ohrani njuna srednja vrednost pred njuno efektivno razliko, ki bo absorbirala večino preostalih zaokrožitvenih napak, uravnoteženo okoli ničle.

Zaokroževanje na enostavne ulomke

V nekaterih okoliščinah je zaželeno, da se dano število x zaokroži na "čisti" ulomek - to je najbližji ulomek z = m/n, katerega števec m in imenovalec n ne presegata določenega maksimuma. Ta problem se precej razlikuje od zaokroževanja vrednosti na določeno število decimalnih ali binarnih številk ali na večkratnik dane enote m. Ta problem je povezan s Fareyevimi zaporedji, Sternovim-Brocotovim drevesom in nadaljevalnimi ulomki.

Lestvica zaokroževanja

Ta vrsta zaokroževanja, ki se imenuje tudi zaokroževanje na logaritemsko lestvico, je različica zaokroževanja na določen prirastek, vendar s prirastkom, ki se spreminja glede na lestvico in velikost rezultata. Konkretno je namen omejiti število pomembnih števk, pri čemer se vrednost zaokroži tako, da se nepomembne števke izpustijo. Ta vrsta zaokroževanja se implicitno pojavlja pri številkah, izračunanih z vrednostmi s plavajočo vejico z omejeno natančnostjo (kot sta tipa IEEE-754 float in double), lahko pa se uporablja tudi na splošno za zaokroževanje vseh realnih vrednosti s katerim koli pozitivnim številom pomembnih števk in katero koli strogo pozitivno realno osnovo.

Uporablja se lahko na primer v inženirski grafiki za predstavitev podatkov z logaritemsko lestvico s spremenljivimi koraki (na primer valovne dolžine, katerih osnova ni nujno celoštevilska mera) ali v statističnih podatkih za opredelitev razredov realnih vrednosti v intervalih z eksponentno rastočo širino (vendar se najpogosteje uporablja s celoštevilskimi osnovami, kot sta 10 ali 2). [vir? ]

Ta vrsta zaokroževanja temelji na logaritemski lestvici, ki jo določajo fiksni neničelni realni faktor skaliranja s (v najpogostejših primerih je ta faktor s=1) in fiksna pozitivna osnova b>1 (ki ni nujno celo število in se najpogosteje razlikuje od faktorja skaliranja) ter fiksno celo število n>0 pomembnih števk v tej osnovi (ki določa vrednost prirastka, ki se uporabi za zaokroževanje, skupaj z izračunano efektivno lestvico zaokroženega števila).

Število primarnega argumenta (in tudi zaokroženo število) najprej predstavimo v eksponentnem zapisu x = s-a-m-bc, pri čemer je znak s +1 ali -1, absolutna mantisa a je omejena na napol odprt pozitivni interval [1/b,1], eksponent c pa je poljubno (pozitivno ali negativno) celo število. V tej predstavitvi so vse pomembne števke v ulomljenem delu absolutne mantise, katere celoštevilski del je vedno enak nič.

Če je izvorno število (ali zaokroženo število) 0, je absolutna mantisa a določena kot 0, eksponent c pa je določen na poljubno vrednost (0 v večini konvencij, vendar nekatere predstavitve s plavajočo vejico ne morejo uporabiti ničelne absolutne mantise, temveč za eksponent c rezervirajo določeno največjo negativno vrednost, ki predstavlja samo število 0), znak s pa je lahko poljubno izbran med -1 in +1 (običajno je nastavljen na +1 za navadno ničlo ali pa je nastavljen na enak znak kot argument v zaokroženi vrednosti, če predstavitev števila omogoča razlikovanje med pozitivnimi in negativnimi ničlami, čeprav na koncu predstavljajo isto številsko vrednost 0).

Enakovredno se lahko uporabi tudi skalirana eksponentna predstavitev kot x = a-s-bc, pri čemer je podpisana mantisa a bodisi enaka nič bodisi znotraj enega od dveh polodprtih intervalov (-1,-1/b] in [+1/b,+1), kar bo veljalo tudi v spodnjem algoritmu.

Postopki za izračun tega skaliranega zaokroževanja so na splošno podobni naslednjim:

  1. če je x enak nič, preprosto vrnite x; v nasprotnem primeru:
  2. pretvori x v skalirano eksponentno predstavitev s podpisano mantiso:
    x = a
    s b c {\displaystyle x=a\cdot s\cdot b^{c}\,} {\displaystyle x=a\cdot s\cdot b^{c}\,}
    1. naj bo x' vrednost x brez skaliranja, ki jo delimo s faktorjem skaliranja s:
      x ′ = x / s {\displaystyle x'=x/s\,}
      {\displaystyle x'=x/s\,} ;
    2. naj bo eksponent c ena plus logaritem absolutne vrednosti x', zaokrožen navzdol na celo število (proti minus neskončnosti):
      c = 1 +
      log b | x ′ | = 1 + log b | x / s | {\displaystyle c=1+\left\lfloor \log _{b}\left|x'\right|\right\rfloor =1+\left\lfloor \log _{b}\left|x/s\right|\right\rfloor \,}{\displaystyle c=1+\left\lfloor \log _{b}\left|x'\right|\right\rfloor =1+\left\lfloor \log _{b}\left|x/s\right|\right\rfloor \,} ;
    3. naj bo podpisana mantisa a zmnožek x', deljen z b na moč c:
      a = x ′
      b - c = x / s b - c {\displaystyle a=x'\cdot b^{-c}=x/s\cdot b^{-c}\,} {\displaystyle a=x'\cdot b^{-c}=x/s\cdot b^{-c}\,}
  3. izračunati zaokroženo vrednost v tej predstavitvi:
    1. naj bo c' začetni eksponent skaliranja c x':
      c ′ = c {\displaystyle c'=c\,}
      {\displaystyle c'=c\,}
    2. naj bo m prirastek za zaokroževanje mantise a glede na število pomembnih števk, ki jih je treba ohraniti:
      m = b - n {\displaystyle m=b^{-n}\,}
      {\displaystyle m=b^{-n}\,}
    3. naj bo a' podpisana mantisa a, zaokrožena v skladu s tem prirastkom m in izbranim načinom zaokroževanja:
      a ′ = r o u n d ( a , m ) = r o u n d ( x / s
      b n - c ′ ) b - n {\displaystyle a'=\mathrm {round} (a,m)=\mathrm {round} (x/s\cdot b^{n-c'})\cdot b^{-n}\,} {\displaystyle a'=\mathrm {round} (a,m)=\mathrm {round} (x/s\cdot b^{n-c'})\cdot b^{-n}\,}
    4. če absolutna vrednost a' ni manjša od b, potem zmanjšajte n (pomnožite prirastek m z b), povečajte eksponent skaliranja c', delite podpisano mantiko a z b in ponovno začnite zaokroževanje nove podpisane mantike a v a' z isto formulo; temu koraku se lahko izognete le, če funkcija abtract "round()" vedno zaokroži a proti 0 (tj.tj. če gre za preprosto krajšanje), vendar je potreben, če lahko zaokroži a proti neskončnosti, saj ima lahko zaokrožena mantisa v tem primeru višji eksponent, zaradi česar ostane dodatna cifra natančnosti.
  4. vrne zaokroženo vrednost:
    y = s k a l e d r o u n d ( x , s , b , n ) = a ′
    s b c ′ = r o u n d ( x / s b n - c ′ ) s b c ′ - n {\displaystyle y=\mathrm {scaledround} (x,s,b,n)=a'\cdot s\cdot b^{c'}=\mathrm {round} (x/s\cdot b^{n-c'})\cdot s\cdot b^{c'-n}\,} {\displaystyle y=\mathrm {scaledround} (x,s,b,n)=a'\cdot s\cdot b^{c'}=\mathrm {round} (x/s\cdot b^{n-c'})\cdot s\cdot b^{c'-n}\,}.

Pri abstraktni funkciji "round()" lahko ta vrsta zaokroževanja uporablja katerega koli od načinov zaokroževanja na cela števila, ki so podrobneje opisani v naslednjem razdelku, vendar je najpogosteje uporabljen način zaokroževanja na najbližje število (s pravili za izenačevanje, ki so prav tako podrobneje opisana spodaj).

Na primer:

  • pri skaliranem zaokroževanju 1,234 s faktorjem skaliranja 1 v osnovi 10 in tremi pomembnimi števkami (največja relativna natančnost = 1/1000) se ob uporabi kateregakoli načina zaokroževanja na najbližjo vrednost vrne 1,23;
  • Podobno zaokroževanje 1,236 bo vrnilo 1,24;
  • Podobno zaokrožanje 21,236 bo dalo 21,2;
  • Podobno zaokrožanje 321,236 bo vrnilo 321;
  • pri uporabi načina zaokroževanja 1,234 s skalirnim faktorjem 1 v osnovi 10 in tremi pomembnimi števkami (največja relativna natančnost = 1/1000) se pri uporabi načina zaokroževanja navzdol vrne vrednost 1,23;
  • Podobno zaokroževanje vrednosti 1,236 bo prav tako vrnilo vrednost 1,23;
  • zaokrožitev 3 π / 7 ≈ 6,8571 π 2 - 4 {\displaystyle \scriptstyle 3\pi /7\;\approx \;6.8571\cdot \pi \cdot 2^{-4}}{\displaystyle \scriptstyle 3\pi /7\;\approx \;6.8571\cdot \pi \cdot 2^{-4}} s faktorjem skaliranja π {\displaystyle \scriptstyle \pi }{\displaystyle \scriptstyle \pi } v osnovi 2 in 3 pomembnimi števkami (največja relativna natančnost = 1/8), če uporabimo način zaokroževanja navzdol, vrne 6 π 2 - 4 = 3 π / 8 {\displaystyle \scriptstyle 6\cdot \pi \cdot 2^{-4};=\;3\pi /8}{\displaystyle \scriptstyle 6\cdot \pi \cdot 2^{-4}\;=\;3\pi /8} ;
  • podobno zaokroževanje 5 π / 7 ≈ 5,7143 π 2 - 3 {\displaystyle \scriptstyle 5\pi /7\;\aprox \;5.7143\cdot \pi \cdot 2^{-3}}{\displaystyle \scriptstyle 5\pi /7\;\approx \;5.7143\cdot \pi \cdot 2^{-3}} vrne 5 π 2 - 3 = 5 π / 8 {\displaystyle \scriptstyle 5\cdot \pi \cdot 2^{-3}\;=\;5\pi /8}{\displaystyle \scriptstyle 5\cdot \pi \cdot 2^{-3}\;=\;5\pi /8} ;
  • podobno zaokroževanje π / 7 ≈ 4,5714 π 2 - 5 {\displaystyle \scriptstyle \pi /7\;\approx \;4.5714\cdot \pi \cdot 2^{-5}}{\displaystyle \scriptstyle \pi /7\;\approx \;4.5714\cdot \pi \cdot 2^{-5}} vrne 4 π 2 - 5 = π / 8 {\displaystyle \scriptstyle 4\cdot \pi \cdot 2^{-5}\;=\;\pi /8}{\displaystyle \scriptstyle 4\cdot \pi \cdot 2^{-5}\;=\;\pi /8} .
  • podobno zaokrožanje π / 8 = 4 π 2 - 5 {\displaystyle \scriptstyle \pi /8\;=\;4\cdot \pi \cdot 2^{-5}}{\displaystyle \scriptstyle \pi /8\;=\;4\cdot \pi \cdot 2^{-5}} prav tako vrne 4 π 2 - 5 = π / 8 {\displaystyle \scriptstyle 4\cdot \pi \cdot 2^{-5}\;=\;\pi /8}{\displaystyle \scriptstyle 4\cdot \pi \cdot 2^{-5}\;=\;\pi /8} .
  • podobno zaokroževanje π / 15 ≈ 4,2667 π 2 - 6 {\displaystyle \scriptstyle \pi /15\;\approx \;4.2667\cdot \pi \cdot 2^{-6}}{\displaystyle \scriptstyle \pi /15\;\approx \;4.2667\cdot \pi \cdot 2^{-6}} vrne 4 π 2 - 6 = π / 16 {\displaystyle \scriptstyle 4\cdot \pi \cdot 2^{-6}\;=\;\pi /16} {\displaystyle \scriptstyle 4\cdot \pi \cdot 2^{-6}\;=\;\pi /16}.

Zaokroži na razpoložljivo vrednost

Končani les, pisalni papir, kondenzatorji in številni drugi izdelki se običajno prodajajo le v nekaj standardnih velikostih.

Številni postopki načrtovanja opisujejo, kako izračunati okvirno vrednost in nato "zaokrožiti" na neko standardno velikost s frazami, kot so "zaokrožite navzdol na najbližjo standardno vrednost", "zaokrožite navzgor na najbližjo standardno vrednost" ali "zaokrožite na najbližjo standardno vrednost".

Če je nabor želenih vrednosti enakomerno razporejen na logaritemski lestvici, lahko izbiro najbližje želene vrednosti kateri koli dani vrednosti obravnavamo kot nekakšno zaokrožitev. Takšne "zaokrožene" vrednosti je mogoče neposredno izračunati.

Zaokroževanje s plavajočo vejico

Pri aritmetiki s plavajočo vejico je cilj zaokroževanja spremeniti dano vrednost x v vrednost z z določenim številom pomembnih števk. Z drugimi besedami, z mora biti večkratnik števila m, ki je odvisno od velikosti z. Število m je moč osnove (običajno 2 ali 10) oblike plavajoče vejice.

Razen te podrobnosti veljajo vse zgoraj obravnavane različice zaokroževanja tudi za zaokroževanje števil s plavajočo vejico. Algoritem za takšno zaokroževanje je predstavljen v zgornjem razdelku o skaliranem zaokroževanju, vendar s konstantnim faktorjem skaliranja s=1 in celoštevilsko osnovo b>1.

Za rezultate, pri katerih bi se zaokroženi rezultat prelil, je rezultat usmerjenega zaokroževanja bodisi ustrezna podpisana neskončnost bodisi največje predstavljivo pozitivno končno število (ali najmanjše predstavljivo negativno končno število, če je x negativen), odvisno od smeri zaokroževanja. Rezultat prelivanja v običajnem primeru zaokroževanja na sodo je vedno ustrezna neskončnost.

Poleg tega, če bi se zaokroženi rezultat premajhno napolnil, tj. če bi eksponent presegel najnižjo predstavljivo celoštevilsko vrednost, je dejanski rezultat lahko bodisi nič (po možnosti podpisan, če lahko predstavitev ohrani razlikovanje znakov za ničle) bodisi najmanjše predstavljivo pozitivno končno število (ali največje predstavljivo negativno končno število, če je x negativen), po možnosti denormalno pozitivno ali negativno število (če mantisa shranjuje vse svoje pomembne števke, v tem primeru se lahko najpomembnejša cifra še vedno shrani na nižjem mestu, tako da se najvišje shranjene cifre nastavijo na nič, in tako shranjena mantisa ne izpusti najpomembnejše cifre, kar je mogoče pri osnovi b=2, ker je najpomembnejša cifra v tej osnovi vedno 1), odvisno od smeri zaokroževanja. Rezultat podtoka v običajnem primeru zaokroževanja na sodo je vedno ustrezna ničla.

Dvojno zaokroževanje

Če število zaokrožite dvakrat zaporedoma na različne natančnosti, pri čemer je zadnja natančnost večja, ni zagotovljeno, da bo rezultat enak kot pri enkratnem zaokrožanju na končno natančnost, razen v primeru usmerjenega zaokroževanja. Na primer, če zaokrožimo 9,46 na eno decimalko, dobimo 9,5 in nato 10, če zaokrožimo na celo število z uporabo zaokroževanja polovice na sodo, vendar bi dobili 9, če bi neposredno zaokrožili na celo število.

Nekateri računalniški jeziki in standard IEEE 754-2008 določajo, da se pri enostavnih izračunih rezultat ne sme dvakrat zaokrožiti. To je bila posebna težava pri Javi, saj je zasnovana tako, da se na različnih računalnikih izvaja enako, zato je bilo treba uporabiti posebne programske trike, da bi to dosegli s plavajočo vejico x87. Jezik Java je bil spremenjen tako, da dovoljuje različne rezultate, kadar razlika ni pomembna, in zahteva uporabo kvalifikatorja "strictfp", kadar se morajo rezultati natančno ujemati.

Natančen izračun z zaokroženo aritmetiko

Z zaokroženo aritmetiko je mogoče oceniti točno vrednost funkcije z diskretnim področjem in obsegom. Če na primer vemo, da je celo število n popoln kvadrat, lahko njegov kvadratni koren izračunamo tako, da n pretvorimo v vrednost x s plavajočo vejico, izračunamo približni kvadratni koren y x s plavajočo vejico in nato zaokrožimo y na najbližje celo število q. Če n ni prevelik, bo napaka zaokroževanja y s plavajočo vejico manjša od 0,5, zato bo zaokrožena vrednost q natančen kvadratni koren n. V najsodobnejših računalnikih je ta metoda lahko veliko hitrejša kot izračun kvadratnega korena n s celoštevilskim algoritmom.

Dilema izdelovalca miz

William Kahan je uvedel izraz "dilema izdelovalca tabel" za neznane stroške zaokroževanja transcendentnih funkcij:

"Nihče ne ve, koliko bi stalo pravilno zaokroženo računanje y^w za vsaka dva argumenta s plavajočo vejico, pri katerih ne pride do prelivanja/podlivanja. Namesto tega ugledne matematične knjižnice izračunavajo elementarne transcendentne funkcije večinoma v mejah nekaj več kot pol ulp in skoraj vedno v mejah enega ulp. Zakaj se Y^W ne more zaokrožiti na pol ulp kot SQRT? Ker nihče ne ve, koliko računanja bi to stalo... Ni splošnega načina, kako predvideti, koliko dodatnih števk bo treba prenesti, da bi izračunali transcendentalni izraz in ga pravilno zaokrožili na neko vnaprej določeno število števk. Celo dejstvo (če je resnično), da bo na koncu zadostovalo končno število dodatnih števk, je lahko globok teorem."

Standard IEEE s plavajočo vejico zagotavlja, da bodo seštevanje, odštevanje, množenje, deljenje, kvadratni koren in ostanek s plavajočo vejico dali pravilno zaokrožen rezultat operacije neskončne natančnosti. Vendar pa takšno jamstvo ni zagotovljeno za bolj zapletene funkcije, ki so v najboljšem primeru praviloma natančne le do zadnjega bita.

Z Gelfond-Schneiderjevim in Lindemann-Weierstrassovim izrekom lahko dokažemo, da številne standardne elementarne funkcije vračajo transcendentne rezultate, če so podani racionalni neničelni argumenti; zato je takšne funkcije vedno mogoče pravilno zaokrožiti. Vendar lahko določitev meje za določeno natančnost, kako natančne rezultate je treba izračunati, da se lahko zagotovi pravilno zaokrožen rezultat, zahteva veliko računskega časa.

Zdaj je na voljo nekaj paketov, ki omogočajo popolno natančnost. Paket MPFR daje pravilno zaokrožene rezultate poljubne natančnosti. IBM je napisal paket za hitre in natančne elementarne funkcije IEEE, v prihodnosti pa bodo standardne knjižnice morda ponudile takšno natančnost.

Mogoče je ustvariti dobro definirana izračunljiva števila, ki jih morda nikoli ne bo mogoče pravilno zaokrožiti, ne glede na to, koliko številk se izračuna. Na primer, če je Goldbachova domneva resnična, vendar nedokazljiva, potem je nemogoče pravilno zaokrožiti navzdol 0,5 + 10-n, kjer je n prvo sodo število, večje od 4, ki ni vsota dveh praštevil, ali 0,5, če takšnega števila ni. Vendar pa je to mogoče približati s poljubno natančnostjo, tudi če je domneva nedokazljiva.

Zgodovina

Koncept zaokroževanja je zelo star, morda celo starejši od koncepta deljenja. Nekatere stare glinene tablice, najdene v Mezopotamiji, vsebujejo tabele z zaokroženimi vrednostmi recipročnih in kvadratnih korenov v osnovi 60. Tudi zaokroženi približki števila π, dolžine leta in meseca so stari.

Od leta 1940 je metoda od kroga do enakomernosti standard ASTM (E-29). Izvor izrazov nepristransko zaokroževanje in statistično zaokroževanje je dokaj samoumeven. Robert Simpson Woodward je v 4. izdaji knjige Verjetnost in teorija napak iz leta 1906 to pravilo poimenoval "računalniško pravilo", kar pomeni, da so ga takrat pogosto uporabljali človeški računalniki, ki so računali matematične tabele. Članek Churchilla Eisenharta iz leta 1947 "Effects of Rounding or Grouping Data" (v Selected Techniques of Statistical Analysis, McGrawHill, 1947, Eisenhart, Hastay in Wallis, uredniki) je nakazoval, da je bila ta praksa že "dobro uveljavljena" pri analizi podatkov.

Izvor izraza "bančno zaokroževanje" ostaja bolj nejasen. Če je bila ta metoda zaokroževanja kdajkoli standard v bančništvu, se je izkazalo, da je dokaze zanjo zelo težko najti. Nasprotno, oddelek 2 poročila Evropske komisije The Introduction of the Euro and the Rounding of Currency Sumounts (Uvedba eura in zaokroževanje zneskov v valuti) kaže, da v bančništvu prej ni bilo standardnega pristopa k zaokroževanju, in določa, da je treba "polovične" zneske zaokroževati navzgor.

Do osemdesetih let prejšnjega stoletja je bila metoda zaokroževanja, ki se je uporabljala pri računalniški aritmetiki s plavajočo vejico, običajno določena s strojno opremo, slabo dokumentirana, nedosledna in različna za vsako znamko in model računalnika. To se je spremenilo, ko je večina proizvajalcev računalnikov sprejela standard IEEE 754 s plavajočo vejico. Standard uporabniku omogoča izbiro med več načini zaokroževanja in v vsakem primeru natančno določa, kako naj se rezultati zaokrožijo. Zaradi teh lastnosti so številski izračuni postali bolj predvidljivi in neodvisni od strojev ter omogočili učinkovito in dosledno izvajanje intervalne aritmetike.

Funkcije zaokroževanja v programskih jezikih

Večina programskih jezikov ponuja funkcije ali posebno sintakso za zaokroževanje ulomkovnih števil na različne načine. Prvi številski jeziki, kot sta FORTRAN in C, so ponujali le en način, običajno krajšanje (proti ničli). Ta privzeta metoda se je lahko uporabila v določenih okoliščinah, na primer pri dodeljevanju ulomkastega števila celoštevilski spremenljivki ali pri uporabi ulomkastega števila kot indeksa v polju. Druge vrste zaokroževanja je bilo treba izrecno programirati; na primer zaokroževanje pozitivnega števila na najbližje celo število je bilo mogoče izvesti z dodajanjem 0,5 in krajšanjem.

V zadnjih desetletjih pa sintaksa in/ali standardne knjižnice večine jezikov običajno zagotavljajo vsaj štiri osnovne funkcije zaokroževanja (navzgor/strop, navzdol/nadstropje, do najbližjega in proti ničli). Metoda za izenačevanje se lahko razlikuje glede na jezik in različico in/ali jo lahko izbere programer. Več jezikov sledi standardu IEEE-754 s plavajočo vejico in te funkcije definira tako, da sprejmejo argument float z dvojno natančnostjo in vrnejo rezultat istega tipa, ki se lahko po potrebi pretvori v celo število. Ker ima format dvojne natančnosti IEEE 52 bitov ulomka, se lahko s tem pristopom v jezikih z 32-bitnimi celimi števili izognemo lažnim prelivanjem. Nekateri jeziki, kot je PHP, ponujajo funkcije, ki zaokrožijo vrednost na določeno število decimalk, npr. s 4321,5678 na 4321,57 ali 4300. Poleg tega je v številnih jezikih na voljo funkcija "printf" ali podobna funkcija za oblikovanje niza, ki omogoča pretvorbo ulomka v niz, zaokrožen na uporabniško določeno število decimalnih mest (natančnost). Po drugi strani pa je metoda zaokroževanja s skrajšanjem (zaokroževanje na nič) še vedno privzeta metoda zaokroževanja, ki jo uporabljajo številni jeziki, zlasti pri deljenju dveh celih števil.

Nasprotno pa CSS in SVG ne opredeljujeta posebne največje natančnosti za številke in meritve, ki se v njunem objektnem modelu dokumenta in vmesniku vmesnika opisnega jezika obravnavajo in izpostavljajo kot nizi, kot da bi imeli neskončno natančnost, ter ne razlikujeta med celimi števili in vrednostmi s plavajočo vejico; vendar izvedbe teh jezikov običajno pretvorijo ta števila v dvojno plavajočo vejico IEEE-754, preden izpostavijo izračunane številke z omejeno natančnostjo (zlasti v standardnih vezavah vmesnikov Javascript ali ECMAScript).

Drugi standardi zaokroževanja

Nekatere stroke ali institucije so izdale standarde ali direktive za zaokroževanje.

Vremenska opazovanja v ZDA

Urad zveznega koordinatorja za meteorologijo ZDA je sredi leta 1966 v smernicah določil, da je treba vremenske podatke zaokrožiti na najbližje okroglo število, pri čemer je veljalo pravilo "zaokroži za polovico navzgor". Na primer, 1,5 zaokroženo na celo število postane 2, -1,5 pa -1. Pred tem datumom je veljalo pravilo "zaokroži za polovico stran od nič".

Negativna ničla v meteorologiji

Nekateri meteorologi lahko zapišejo "-0", da označijo temperaturo med 0,0 in -0,5 stopinje (izključeno), ki je bila zaokrožena na celo število. Ta zapis se uporablja, kadar je negativni znak pomemben, ne glede na to, kako majhna je velikost; na primer pri zaokroževanju temperatur na Celzijevi lestvici, kjer temperatura pod ničlo pomeni zmrzal. []

Sorodne strani

Vprašanja in odgovori

V: Kaj pomeni beseda "zaokrožitev"?


O: Zaokroževanje je zamenjava številske vrednosti z drugo vrednostjo, ki je približno enaka, vendar ima krajšo, preprostejšo ali bolj jasno obliko.

V: Kaj je primer zaokroževanja?


O: Primer zaokroževanja je zaokrožitev 23,74 USD na 24 USD, zaokrožitev ulomka 312/937 na 1/3 in zaokrožitev izraza 2 {\displaystyle {\sqrt {2}} na 1,41.

V: Zakaj zaokrožujemo števila?


O: Številke zaokrožujemo zato, da dobimo vrednost, ki jo je lažje zapisati in obravnavati kot prvotno. To lahko storimo tudi zato, da označimo natančnost izračunanega števila.

V: Katere so morebitne težave pri zaokroževanju?


O: Zaradi zaokroževanja lahko pride do zaokrožitvene napake, v nekaterih primerih pa lahko zaradi napak, ki se sčasoma kopičijo v izračunih, rezultat postane nesmiseln. Poleg tega je lahko natančno zaokroževanje transcendentnih matematičnih funkcij težavno, ker ni mogoče vedeti, koliko dodatnih števk je treba izračunati, da se vnaprej odloči, ali je treba zaokrožiti navzgor ali navzdol.

V: Kako je zaokroževanje povezano s kvantizacijo?


O: Zaokroževanje ima veliko podobnosti s kvantizacijo, ki se pojavi, ko je treba fizikalne količine kodirati s številkami ali digitalnimi signali.

AlegsaOnline.com - 2020 / 2023 - License CC3