Precisión dos cálculos no LibreOffice

O problema inherente á precisión

O Calc do LibreOffice, o mesmo que a maioría do software de follas de cálculo, emprega os recursos de matemáticas de vírgula flutuante dispoñíbeis no hardware. Dado que a maioría do hardware contemporáneo emprega aritmética binaria de vírgula flutuante con precisión limitada tal e como se define no estándar IEEE 754, non é posíbel representar moitos números decimais, incluídos algúns tan simples como 0,1, no Calc do LibreOffice (que emprega números de dupla precisión de 64 bits internamente).

Os cálculos con eses números necesariamente resultan en erros de arredondamento, e eses erros acumúlanse con cada cálculo subsecuente.

Isto non é un erro de programación, senón que é algo esperado e actualmente inevitábel sen realizar cálculos complexos con software, co que se incorrería en penalizacións de desempeño inadecuadas e por iso non se considera. Os usuarios deben saber isto e empregar os arredondamentos e as comparacións con épsilon da máquina (ou arredondamento ás unidades), segundo se precise.

Un exemplo con números:

A

1

31000.99

2

32000.12

3

=A1-A2


Isto resulta en -999,129999999997 en A3, no canto do -999,13 agardado (pode que haxa que aumentar o número de cifras decimais que se mostran no formato de cela para velo).

Precisamos da súa axuda!