Vārds "noapaļošana" attiecībā uz skaitlisko vērtību nozīmē tās aizstāšanu ar citu vērtību, kas ir aptuveni vienāda, bet kuras forma ir īsāka, vienkāršāka vai skaidrāka. Piemēram, 23,74 ASV dolārus var noapaļot līdz 24 ASV dolāriem, vai daļu 312/937 var noapaļot līdz 1/3, vai izteicienu 2 {\displaystyle {\sqrt {2}}}{\displaystyle {\sqrt {2}}} kā 1,41. Noapaļošana var attiekties gan uz decimālām, gan uz binārām (peldošā komata) attēlojuma formām.

Noapaļošana bieži tiek veikta ar nolūku, lai iegūtu vērtību, kuru ir vieglāk rakstīt un apstrādāt nekā sākotnējo. To var darīt arī, lai norādītu aprēķinātā skaitļa precizitāti; piemēram, daudzumu, kas aprēķināts kā 123 456, bet par kuru ir zināms, ka tā precizitāte ir tikai dažu simtu vienību robežās, labāk norādīt kā "aptuveni 123 500". Tāpat zinātnē un inženierijā noapaļošana tiek lietota, lai saskaņotu skaitļa attēlojumu ar mērījumu neziņu (noapaļojot līdz atbilstošam nozīmīgajam ciparam).

No otras puses, noapaļošana var radīt nelielu noapaļošanas kļūdu rezultātā. Noapaļošana ir gandrīz neizbēgama daudzos aprēķinos, jo īpaši, dalot divus skaitļus ar veseliem skaitļiem vai ar fiksētu komata punkti; aprēķinot tādas matemātiskās funkcijas kā kvadrātsaknes, logaritmi un sinusus; vai izmantojot peldošākomata attēlojumu ar noteiktu zīmīgo ciparu skaitu. Aprēķinu secībā šīs noapaļošanas kļūdas parasti uzkrājas, un dažos "nepareizos" gadījumos tās var padarīt rezultātu bezjēdzīgu. Tāpēc praktiskos skaitļošanas uzdevumos ieteicams saglabāt papildu ciparus (sargus ciparus) un noapaļot tikai gala rezultātu vai izmantot metodikas, kas mazinās kļūdu akumulāciju (piem., Kahana summēšana).

Precīza transcendentālo matemātisko funkciju noapaļošana ir sarežģīta, jo nevar iepriekš zināt, cik papildu ciparu ir jāaprēķina, lai noteiktu, vai noapaļot uz augšu vai uz leju. Šo problēmu sauc par "tabulas sastādītāja dilemmu" (table-maker's dilemma): lai noapaļotu, piemēram, vērtību f(x) uz attiecīgā formāta pēdējo ciparu pareizi, algoritmam reizēm ir jāaprēķina f(x) ar ievērojami lielāku precizitāti nekā galīgā formāta zīmīgo ciparu skaits. Risinājumi ietver "pareizu noapaļošanu" (correct rounding), kas garantē stingru noapaļojuma rezultātu, un "faithful rounding", kas garantē noapaļojumu uz vienu no divām tuvākajām iespējām.

Noapaļošanai ir daudz līdzību ar kvantizāciju, kas notiek, kad fizikāli lielumi jākodē ar skaitļiem vai ciparu signāliem. Risinot signālu vai mērījumu kodēšanu, jāizvēlas kompromiss starp precizitāti, datu apjomu un trokšņa/pārbīdījuma ietekmi.

Galvenās noapaļošanas metodes

  • Noapaļošana uz tuvāko ciparu (round to nearest) — visbiežāk izmantotā metode. Ja noapaļojamā vērtība atrodas tieši pa vidu (piem., 2,5), pielieto noteiktu "tiešo" noteikumu (skat. zemāk).
  • Noapaļot pusē uz augšu (round half up) — klasiskā skolas metode: 2,5 → 3, -2,5 → -2.
  • Noapaļot pusē uz leju (round half down) — 2,5 → 2.
  • Noapaļot līdz patālākajam no nulles (half away from zero) — 2,5 → 3, -2,5 → -3.
  • Bankieru noapaļošana (round half to even) — "noapaļot līdz pāra ciparam": 2,5 → 2, 3,5 → 4. Šī metode samazina sistemātisku nobīdi kopā ar daudziem datiem.
  • Uz grīdas (floor) — noapaļo uz leju uz tuvāko mazāko veselu (piem., 2,9 → 2, -2,1 → -3).
  • Uz jumta (ceil) — noapaļo uz augšu uz tuvāko lielāko veselu (2,1 → 3, -2,9 → -2).
  • Truncēšana (round toward zero) — nogriež decimāldaļu, tuvinot nulli (2,9 → 2, -2,9 → -2).

Kā noapaļot praktiski

  • Noapaļošana uz n decimālām zīmēm: reiziniet skaitli ar 10^n, noapaļojiet uz tuvāko veselumu pēc izvēlētā noteikuma, tad daliet atpakaļ ar 10^n. Piemērs: noapaļot 23,746 uz 2 decimālām zīmēm: 23,746·100 = 2374,6 → 2375 → 23,75.
  • Noapaļošana uz nozīmīgajiem cipariem: pārnes skaitli zinātniskā pierakstā, noapaļo nepieciešamo ciparu skaitu, tad atgriez formātā. Piemērs: 0,004567 uz 3 nozīmīgajiem cipariem → 0,00457.
  • Formulas piemērs (pozitīviem skaitļiem): noapaļojot uz tuvāko veselu, var izmantot floor(x + 0,5). Tomēr tas darbojas atšķirīgi ar negatīviem skaitļiem, tāpēc rūpīgi izvēlieties metodi (vai izmantojiet valodas/bibliotēkas funkcijas).

Piemēri

  • 23,74 → uz tuvāko veselumu 24; uz vienu decimālu 23,7; uz diviem decimāliem 23,74.
  • 2,5: half up → 3; half to even → 2; toward zero → 2.
  • -2,5: half up → -2; half away from zero → -3; to even → -2.
  • 312/937 ≈ 0,33296 → aptuveni 1/3, ja nepieciešama vienkārša frakcija.
  • Skaitlis 123 456 ar precizitāti "dažu simtu" robežās labāk tiek uzrakstīts kā aptuveni 123 500.

Noapaļošanas kļūdas un aprēķinu precizitāte

Noapaļošanas kļūdas var būt sistēmiskas (ja vienmēr noapaļo uz vienu pusi) vai nejaušas. Sistēmiskas kļūdas rada nobīdi, kas pieaug ar operāciju skaitu. Lai mazinātu šo ietekmi:

  • glabājiet papildu zīmīgos ciparus aprēķinos (guard digits);
  • noapaļojiet tikai gala rezultātu;
  • izmantojiet algoritmus, kas samazina kļūdu akumulāciju (piem., Kahana summēšana);
  • ja strādājat ar peldošā komata formātu, izmantojiet pareizu noapaļošanas režīmu, kuru nodrošina standarts (piem., IEEE 754).

Noapaļošana datorzinātnē un standarti

IEEE 754 peldošā komata standarts definē vairākus noapaļošanas režīmus: noapaļot uz tuvāko (parasti ar "tiesēm uz pāra ciparu" kā noklusējumu), noapaļot uz nulli (truncate), noapaļot uz +∞ un uz -∞. Šie režīmi ir svarīgi, jo tie nosaka, kā tiks interpretētas operācijas un kādu kļūdu raksturu radīs aprēķini. Lai iegūtu precīzu noapaļojumu funkcionālām vērtībām (piem., trigonometriskām funkcijām), algoritmi bieži izmanto papildu precizitāti vai speciālas bibliotēkas, kas risina iepriekš minēto "tabulas sastādītāja dilemmu".

Praktiski padomi

  • Izvēlieties noapaļošanas režīmu, kas atbilst jūsu pielietojumam (zinātnē bieži izmanto "noapaļot līdz pāra ciparam" pret sistēmisku nobīdi);
  • mērījumos saskaņojiet noapaļojumu ar tabulētās neziņas (uncertainty) norādēm;
  • grupējiet darbības tā, lai pēc iespējas retāk veiktu atkārtotu noapaļošanu starpstacijās;
  • kontrolējiet un dokumentējiet, kāds noapaļošanas režīms lietots finanšu vai juridiskos aprēķinos, jo likumdošana vai grāmatvedības noteikumi var pieprasīt konkrētu metodi.

Noapaļošana ir fundamentāla operācija gan ikdienas dzīvē (nauda, mērījumi), gan sarežģītos skaitļošanas uzdevumos. Sapratne par dažādām metodēm, to ietekmi uz rezultātu un piemērotu rīku izmantošana ļaus izvairīties no nevēlamiem rezultātu sagrozījumiem.