Ir ao conteúdo

Excel Excel fazendo o impossível: errando na soma e subtração!!!


Ir à solução Resolvido por Wendell Menezes,

Posts recomendados

Postado

A imagem no arquivo anexo contém toda a informação necessária para entender o que está acontecendo. Uso o Excel há décadas e nunca vi isso acontecer. Esgotei todas as minhas possibilidades de explicação. Ele simplesmente erra numa soma e subtração. Os formatos dos números contidos nas células também estão na imagem. Será que estou cometendo algum erro ridículo?

Excel faz o impossível.png

  • Solução
Postado

Definitivamente não há nada de "errado" com o arquivo. Você está se deparando com um problema decorrente do padrão IEEE 754 para ponto flutuante que o Excel utiliza para fazer cálculos aritiméticos, que em alguns casos como esse, resulta em diferenças decimais extremamente pequenas que desvirtuam testes lógicos como o que você implementou.

Uma forma de contornar isso é utilizando uma fórmula de arredondamento, como nesse exemplo abaixo que considera apenas 2 casas decimais:

 

=IF(AF10="";"";IF(ROUND(F10+O10-X10=I16;2)=0;"OK";"????"))

 

  • Curtir 2
Postado

Obrigado, Wendell, pela explicação e pela solução apontada. Com   =SE(AF10="";"";SE(ARRED(F10+O10-X10;2)=0;"OK";"????")), a fórmula deu o "OK". Eu já tinha tentado usar o arredondamento para duas decimais em cada termo e também no resultado antes de fazer a conta e continuavam aparecendo as interrogações. Não tinha tentado somar primeiro e arredondar depois. Formatando cada número com 30 decimais, todos só mostravam zeros depois dos algarismos significativos, nada de "lixo" na 14ª ou na 30ª decimal, como "flagrei" uma outra vez que vi acontecer o mesmo problema. Vou tentar aprender algo sobre o padrão IEEE 754, obrigado novamente pela dica!!

Postado

Bom dia, Wendell, sem querer abusar da sua boa vontade, me bateu uma dúvida: já que o padrão IEEE 754 é amplamente utilizado em linguagens de programação, como C, C++, Java e Python, bem como em sistemas operacionais e processadores (como minha rápida pesquisa revelou🙂), o ocorrido na planilha pode acontecer também em qualquer outro sistema de processamento!!! Ou seja, a "ultra confiável" precisão das máquinas pode nos trair a qualquer momento. Um IF pode levar a uma decisão errada em algum momento aleatório importante na vida de um cidadão...😝

Postado
Em 01/03/2023 às 08:14, Jairo Vasconcelos disse:

Ou seja, a "ultra confiável" precisão das máquinas pode nos trair a qualquer momento

Isso não é algo inesperado ou aleatório. Como as máquinas não podem representar infinitos números de dígitos, como acontece na matemática real, é preciso chegar numa aproximação nesses casos. O problema do "erro de arredondamento" basicamente vem dessa limitação e é assunto de estudo do cálculo numérico.

 

Comentei sobre essa questão da representação do número de ponto flutuante,

 

https://www.clubedohardware.com.br/forums/topic/1553292-imprecisão-com-ponto-flutuante

 

Este link é interessante, tem uma calculadora que mostra a conversão de flutuante para binário,

 

https://www.h-schmidt.net/FloatConverter/IEEE754.html

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!