Precisión dos cálculos no LibreOfficeDev

O problema inherente á precisión

O Calco do LibreOfficeDev, o mesmo que a maioría do software de follas de cálculo, emprega 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 LibreOfficeDev (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 incorrería en penalizacións de desempeño inadecuadas, polo que non se considera. Os usuarios deben saber isto e empregar os arredondamentos e as comparacións con épsilon da máquina (ou arrendamento ás unidades), segundo se precisar.

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).