O LibreOffice calc tem um erro de arredondamento em sum ()?

0

Versão do LibreOffice: 4.2.8.2 ID do Build: 420m0 (Build: 2)

Eu tenho uma planilha simples para contabilidade doméstica de entrada dupla que funciona bem, exceto em uma linha onde, em formatação condicional, estou usando SUM () com os valores £ -23.99, £ 8.00 e £ 15.99. Se o resultado não for 0, recebo um fundo vermelho para avisar que não equilibrei a linha. A linha mencionada tem um fundo vermelho.

Analisando cada um dos valores sem formato de moeda, eles são os esperados para 20 casas decimais (por exemplo, -23,99000000000000000000). No entanto, o resultado de SUM (x, y, z) retorna 3.6E-015 somente para essa linha. Todas as outras linhas estão bem. Se eu repetir o mesmo conjunto de dados em uma linha diferente, recebo o mesmo erro. O que é "especial" sobre esses números?

Obviamente, posso corrigir isso arredondando o resultado, mas me pergunto se é um bug conhecido?

    
por Dan_7378439012 30.09.2016 / 19:09

1 resposta

2

O que você está vendo é um erro de conversão binária. Esses números são, em algum ponto intermediário, armazenados em formato binário no processador e / ou RAM e convertidos de volta para decimal para comparação (ou convertidos para binário para comparação). Isso introduz uma diferença nas últimas decimais que podem ser representadas por ( provavelmente) um valor float assinado de 32 bits. Não é um erro no Libre Office Calc, como tal; em vez disso, é uma limitação inerente em fazer aritmética decimal em uma máquina binária.

    
por Zeiss Ikon 30.09.2016 / 19:24