Erros de arredondamento do Excel

3

Em uma nova planilha (estou usando o Excel 2013), começando no canto superior esquerdo, digite:

=18.6 + 67.2 | =A1-85.8 = 0 | =(A1-85.8) * 1000000000000

Expectativa

85.8 | TRUE | 0

Resultado real

85.8 | FALSE | 0.014210855

Estou bem ciente de que números de ponto flutuante podem se comportar assim, mas ainda estou surpreso com isso acontecendo com operações tão simples em números, cada um com um número baixo de números significativos e ordens de grandeza similares.

Alguém pode explicar por que isso acontece e por que isso acontece apenas com alguns pares de valores (e sempre não inteiros)?

Um número de linhas preenchidas assim (e uso repetido de F9 ):

=RANDBETWEEN(10, 1000)/10 | =RANDBETWEEN(10, 1000)/10 | =A1 + B1 | =C1-ROUND(C1,1)=0 | =(C1-ROUND(C1,1)) * 1000000000000

ajuda a demonstrar a aparente natureza aleatória desse fenômeno.

    
por Bob Sammers 26.06.2014 / 14:26

1 resposta

4

Podemos ver esse efeito estranho em ação (o que o Excel está achando que deveria ser) atualizando sua coluna B de =A1-85.8 = 0 para =A1-85.8

Então, use o REDONDO para corrigi-lo

EG

=ROUND(A1-85.8, 0) = 0

Para explicar por que  por favor veja esta Fonte que explica tudo. (muito para copiar)

Além disso, no mesmo link acima

In some cases, you may be able to prevent rounding errors from affecting your work by using the Precision as displayed option. This option forces the value of each number in the worksheet to be the displayed value. To turn on this option, follow these steps:

In Excel 2003 and in earlier versions, click Options on the Tools menu. On the Calculation tab, click to select the Precision as displayed check box.

In Excel 2007, click the Microsoft Office Button, click Excel Options, and then click the Advancedcategory. In the When calculating this workbook section, select the workbook you want, and then select the Set precision as displayed check box.

In Excel 2013 and 2010, click File, and then Options, and then click the Advanced category. In the When calculating this workbook section, select the workbook you want, and then select the Set precision as displayed check box.

    
por 26.06.2014 / 14:58