Думата "закръгляне" за дадена числова стойност означава заместването ѝ с друга стойност, която е приблизително равна, но има по-кратка, по-проста или по-ясна форма. Например 23,74 USD може да се закръгли на 24 USD, дробта 312/937 може да се закръгли на 1/3, а изразът може да се закръгли на 1,41. Закръглянето често се прави умишлено, за да се получи стойност, която е по-лесна за записване и обработка от първоначалната. То може също да служи за указване на степента на увереност или точността на измерване или изчисление; например число, изчислено като 123 456, но известно с точност само в рамките на няколкостотин единици, е по-добре да се представи като "около 123 500".
Защо и кога се използва закръгляне
- Улесняване на изчисления и представяне: по-кратки числа са по-удобни за четене и смятане.
- Ограничена точност на измерване: когато физическата техника или методът дават само няколко значещи цифри (свързано с физическите величини и измервания), стойностите се закръгляват до тази валидна точност.
- Ограничения на представянето в компютър: при цифрови сигнали и кодиране е необходима дискретизация/квантуване.
Основни методи за закръгляване
- На най-близката стойност (round to nearest): закръглява към най-близката желана мерна единица (например до брой десетични места). При точно на полу път трябва да се приложи правило за т.нар. tie-breaking (виж по-долу).
- Закръгляване нагоре (round up, ceiling): винаги към по-голямата стойност; математически това е ceil.
- Закръгляване надолу (round down, floor): винаги към по-малката стойност; това е floor.
- Закръгляване към нула (truncate): отрязване на дробната част (за отрицателни числа това е закръгляване нагоре по абсолютна стойност).
- Закръгляване по правило "на половината нагоре" (round half up): когато цифрите след желания разряд са точно 0.5, закръгляваме нагоре.
- Закръгляване по правило "банкерско" или към четна (round half to even): при 0.5 се закръглява към най-близката четна значеща цифра; това намалява систематичната пристрастност при многократни закръглявания и е стандарт в IEEE 754 за плаваща запетая.
- Стохастично закръгляване: използва случайност при решаване на точни 0.5 случаи за запазване на статистическите свойства на набора от данни (използва се в някои числени методи и хардуерни реализации).
Правила при равни дистанции (tie-breaking)
Когато числото е точно по средата между две възможни закръглени стойности (напр. 2,5 при закръгляване до цяло), изборът на правилото за разрешаване влияе върху систематичната грешка. Най-често използваните правила са:
- Round half up — предпочитан в училищната аритметика и много системи за финансови отчети.
- Round half to even (банкерско) — намалява натрупването на положително или отрицателно отклонение при големи серии от закръглявания и е стандарт за IEEE 754.
- Round half away from zero — прилага се понякога за улесняване на представяне в човешки потребителски интерфейси.
Грешки при закръгляване и тяхното натрупване
Всяко закръгляне създава грешка при закръгляването — разликата между закръглената и истинската стойност. При единични операции тази грешка може да е незначителна, но при поредица от аритметични операции грешките се натрупват и понякога водят до значителни отклонения. Особено уязвими са:
- Изчисления, съдържащи изваждания на близки по стойност числа — рискуват загуба на точност (катастрофално изчисление на точността).
- Аритметика с цяло число или фиксирана запетая, когато деление или корекции създават остатъци.
- Изчисляване на трансцендентни функции (напр. квадратни корени, логаритми, синуси) — точното закръгляне може да е трудно, тъй като неизвестният брой допълнителни цифри влияе върху решението за закръгляване; това е т.нар. "дилема на съставителя на таблици".
- Представяне с плаваща запетая — при фиксиран брой значещи цифри определени реални числа не могат да се представят точно и се закръгляват.
Закръгляне в компютърните изчисления
- Стандартът IEEE 754 дефинира няколко режима на закръгляване (най-близо, към нула, към +∞, към −∞, към четна) и е широко възприет в софтуер и хардуер.
- За да се намалят грешките, често се използват стратегии като съхраняване на допълнителни "guard" и "round" цифри по време на изчисленията, или използване на високопрецизни библиотеки (arbitrary precision).
- При сумиране на голям брой числа (особено с различен порядък) се препоръчват алгоритми като Kahan summation, за да се компенсира натрупването на закръгляния.
Практически съвети
- Запазвайте възможно най-много вътрешна прецизност при междинните изчисления и закръгляйте едва в края (особено в финансови и научни изчисления).
- Използвайте подходящ режим на закръгляване според приложението: например банкерското закръгляване често е по-добро за агрегирани финансови данни.
- Документирайте към колко значещи цифри или до кой десетичен знак са закръглени стойностите — това улеснява интерпретацията и предотвратява недоразумения.
- За точни финансови трансакции използвайте десетични (decimal) типове данни, а не бинарни плаващи запетаи, за да избегнете представителни грешки.
Примери
- Закръгляне на 23,74 до цяло: 24 (на най-близката цяла стойност).
- Закръгляне на 1,41421356 (приблизително sqrt(2)) до две десетични места: 1,41 (при rule round half to even или round half up — тук не е на граница).
- При закръгляване до значещи цифри: 0,004567 ≈ 0,00457 при 3 значещи цифри.
- При серия от закръгляния: ако последователно закръгляваме и събираме, могат да възникнат систематични отклонения; по-добре е да сумираме в максимална възможна прецизност и да закръглим резултата веднъж.
Закръгляването е неизбежна част от практическата математика, изчисленията и обработката на данни. Разбирането на различните методи и техните последствия позволява вземането на информирани решения, които минимизират грешките и съответстват на целите на приложението.