Ponto flutuante do Excel e comportamento inexplicado booleano

2

Obrigado por verificar minha pergunta.

Eu estava trabalhando no Excel hoje para trabalhar e encontrei um comportamento anômalo nos testes aritméticos e booleanos de ponto flutuante do Excel. Aqui está um link para o caso de teste de arquivo do Excel que eu fiz.

Para solucionar problemas e obter mais informações, consultei estas páginas: source 1 , a fonte 2 é a postagem de Chip Pearson sobre precisão de ponto flutuante do Excel, e a terceira fonte é o artigo da Wikipedia sobre precisão no Excel (não é possível postar mais de 2 links para reputação. Desculpe, sou novo aqui).

O problema é que as células A2: A4, A10: A12, I2: I4 e I10: I12 têm exatamente os mesmos valores na mesma ordem, ou seja, A2 = I2 = A10 = I10,. .. A4 = I4 = A12 = I12. No entanto, testes booleanos para verificar se operações aritméticas nos mesmos valores em intervalos diferentes não produzem os mesmos resultados.

Eu pensei que era devido à precisão de ponto flutuante, mas os números nos intervalos são exatamente os mesmos. Portanto, qualquer erro de ponto flutuante deve (eu acho) se manifestar de forma idêntica nos intervalos.

Finalmente, as células são todas formatadas da mesma forma. Então, isso não deve afetar os resultados.

Se vocês tiverem alguma ideia do que está causando esse comportamento, eu realmente adoraria ouvi-lo. Este problema me deixou perplexo!

Eu descrevi as etapas exatas que tomei para criar o arquivo abaixo (para ajudar na repetição, caso meu arquivo do Excel não esteja claro).

Meu problema é o seguinte:

  1. Calculei 6600/14, 4400/14, 2200/14 e copiei e colei os resultados como valores nas células A2: A4.
  2. digitei fórmulas para testes booleanos nas células A7: C7.
    2a. A7 tinha 'A2 = A3 + A4'
    2b. B7 tinha 'A3 = A2 - A4'
    2c. C7 tinha 'A4 = A2 - A3'
  3. digitei as versões de texto das fórmulas (para legibilidade) nas células A6: C6
  4. digitei as seguintes fórmulas nas células A8: C8
    4a. A8 tinha 'A3 + A4'
    4b. B8 tinha 'A2 - A4'
    4c. C8 tinha 'A2 - A3'
  5. copiei e colei como valores e transpus os resultados de A8: C8 para A10: A12.
  6. Eu então repeti os passos 2-4 usando os valores em A10: A12.
  7. Insira cada célula A2: A4, A10: A12 e copie o valor e cole-o no bloco de notas.
  8. colei esses valores nas células I2: I4, I10: I12
  9. Execute os testes booleanos das etapas 2 a 4 para os intervalos I2: I4 e I10: I12.
por Patrick 01.03.2017 / 01:52

1 resposta

1

Você não vai gostar disso! De alguma forma, no processo de copiar / colar, você pegou um caractere de nova linha e o colou na célula A10 e isso elimina toda a matemática.

    
por 01.03.2017 / 02:21