Точност на изчисленията в LibreOffice

Присъщ проблем с точността

LibreOffice Calc, точно както повечето други програми за електронни таблици, разчита на възможностите на хардуера за изчисления с плаваща запетая. Тъй като повечето съвременен хардуер използва двоична аритметика с плаваща запетая с ограничена точност, дефинирана от стандарта IEEE 754, много десетични числа – включително толкова прости като 0,1 – не могат да бъдат точно представени в LibreOffice Calc (който вътрешно използва 64-битови числа с двойна точност).

Пресмятанията с тези числа неизбежно водят до грешки от закръгляване, които се натрупват с всяко изчисление.

Това не е дефект, а нещо очаквано и за момента неизбежно без използване на сложни софтуерни изчисления, което би влошило неприемливо бързодействието и поради това е неприложимо. Потребителите трябва да имат това предвид и при необходимост да използват закръгляване и сравняване с машинен епсилон.

Пример с числа:

A

1

31000.99

2

32000.12

3

=A1-A2


Това ще даде резултат -999,129999999997 в A3 вместо очакваното -999,13 (може да се наложи да увеличите показваните дробни позиции във формата на клетката, за да видите числото).

Моля, подкрепете ни!