
Em primeiro lugar, não quero arredondar meus números, estou usando números de base 10, então o Excel não deve se preocupar em fazer simples somas e subtrações.
A| 665.110000000000000000000000000000
B| 4.990000000000000000000000000000
C| =a1+b1
D| 670.790000000000000000000000000000
E| 1,335.890000000000000000000000000000
F| =e1-(c1+d1)
Eu deveria receber -5, mas a F1 retorna
-4.999999999999770000000000000000
É um documento financeiro, portanto, quero evitar arredondamentos, mais precisamente. Por que eu deveria precisar? Coloquei a formatação da célula em Moeda com 2 casas decimais e obterei o valor de exibição correto, mas para todos os cálculos ainda obterei -4,9999...7, o que leva a mais erros com formatação condicional, etc.
Responder1
O problema se deve ao hardware básico de quase todos os computadores. Eles são baseados em sistemas binários, portanto não contam de 0 a 9, mas apenas contam 0 e 1, ou base 2.
Isso é bom, a menos que você descubra que deseja números decimais de alta precisão. Os computadores só podem contar em termos de frações que são potências de um meio, ou seja, 1/2, 1/4, 1/8, 1/16, 1/32 etc. Não existe uma maneira fácil para um computador representar alguns números como como 1/3 ou 4,99 com perfeita precisão sem abrir mão de muito desempenho.
O Excel é muito bom em esconder esse fato; somente se você ativar cerca de 20 casas decimais você verá esse erro. Isso é feito por arredondamento, mas apenas quando o resultado é exibido.
Você diz que isso é para cálculos financeiros, você realmente precisa que o resultado final seja exibido com 20 casas decimais? Ou você só precisa ter certeza de que o cálculo foi feito com precisão suficiente para que não ocorram erros de arredondamento. Se for o último, você só precisa confiar que o Excel vem fazendo seu trabalho há alguns anos para inúmeras organizações financeiras, sem problemas. E que você não precisa se preocupar com esses erros de arredondamento que estão causando problemas.
Responder2
Isso já foi respondido aqui antes.
Só porque você está usando um número "redondo" na base 10 não ajuda - o computador armazena números em binário. Seu número redondo de base 10 se traduz em um número em binário que acaba se repetindo, você perde informações ao converter esse decimal de volta.
Os usuários de computador contornam isso com dois métodos:
1) faça suas contas até um certo número de casas decimais e depois arredonde-as para menos casas decimais. 2) use BCD ou alguma outra representação decimal exata.
Até onde sei, o Excel não usa o número 2, então escolha outra opção.
Responder3
existe uma opção no Excel "precisão conforme exibida" que arredonda automaticamente os números para a precisão que você escolher para exibir seus números.
http://support.microsoft.com/kb/78113
não recomendaria que você fizesse isso, pois isso pode introduzir erros de arredondamento em seu cálculo, pois você está dizendo ao Excel para arredondar para 2 casas decimais, enquanto atualmente o erro de arredondamento é de 15 (ish) casas decimais, portanto não afetará seus cálculos.