Precisão de cálculos do LibreOffice

O problema da precisão inerente

O LibreOffice Calc, assim como a maioria dos outros softwares de planilha, utiliza recursos matemáticos de ponto flutuante disponíveis no hardware. Dado que a maioria dos hardwares contemporâneos utiliza a aritmética binária de ponto flutuante com precisão limitada definida no padrão IEEE 754, muitos números decimais - incluindo aqueles tão simples quanto 0,1 - não podem ser representados com precisão no LibreOffice Calc (que utiliza números de dupla precisão de 64 bits internamente).

Cálculos com esses números forçosamente resultam em erros de arredondamento, e esses erros acumulam a cada cálculo subsequente.

Isso não chega a ser um bug, mas é esperado e é atualmente inevitável sem a utilização de cálculos complexos feitos em software, o que incorreria em penalidades de desempenho inadequadas e, portanto, está fora de questão. Os usuários precisam saber disso e usar arredondamentos e comparações com o épsilon da máquina (ou unidade de arredondamento), quando necessário.

Um exemplo numérico:

A

1

31000.99

2

32000.12

3

=A1-A2


Isso resultará em -999,129999999997 em A3, em vez do esperado -999,13 (talvez seja necessário aumentar as casas decimais mostradas no formato de célula para que seja visto).

♥ Doe para nosso projeto! ♥