Ordem de questões de adição no ponto flutuante do Excel 2010?

3

Eu estava inserindo alguns números no Excel 2010 e notei o que parece ser um problema de ponto flutuante. Eu peguei a soma de quatro números, esperando zero, e consegui um pequeno número muito , próximo de zero. Eu pensei: "Ok, problema de ponto flutuante, com certeza o que for." Mas então eu notei que se você adicioná-los em uma ordem diferente, a soma resultante é zero.

Por que adicioná-los em uma ordem diferente afeta o Excel ? Eu não esperava isso. Sim, percebo que 1.13E-13 é muito pequeno e muito próximo de zero. Eu estou querendo saber por que a diferença no cálculo com base na ordem de adição.

Os dados brutos são os seguintes:

573.7   
-144.79 
-309.84 
-119.07 
1.136868E-13    =sum(A1:A4)
0.000000E+00    =A1+A2+A3+A4
1.13687E-13 =A4+A3+A2+A1
    
por kmort 07.03.2016 / 17:44

1 resposta

2

Se você usar o Avalie a fórmula no Excel, você pode ver nos resultados intermediários que a + b + c + d é analisada da esquerda para a direita. Então, a + b + c + d é realmente calculado como ((a + b) + c) + d.

Em outras palavras, primeiro o resultado de um + b é calculado ( e armazenado no formato IEEE754 ), do que c é adicionado a esse resultado, etc.

Isso explica porque o resultado é diferente, porque (levando em conta a imprecisão dos resultados intermediários), ((a + b) + c) + d não é igual a + (b + (c + d)).

    
por 17.03.2016 / 09:16