Acerca da precisão melhorada dos cálculos no Pages, no Numbers e no Keynote

Após atualizar o Pages, o Numbers e o Keynote, poderá reparar em pequenas alterações aos resultados dos cálculos nos documentos. Isto acontece porque a versão mais recente do iWork inclui uma atualização ao motor de cálculo, o que produz resultados com uma precisão superior à anterior.

A maioria das fórmulas não apresentará diferenças visíveis, mas os cálculos que resultam em ou que utilizam números extremamente pequenos podem mostrar agora uma resposta ainda mais precisa.

Exemplo 1

Em versões anteriores do Numbers, do Pages e do Keynote, um cálculo como = 10,0 – 9,8 resulta num valor de 0,199999999999999.

Alterar o número de casas decimais apresentadas na célula (entre 1 e 14 casas decimais) pode remediar o problema para mostrar o resultado esperado de 0,2. Aumentar o número de casas decimais apresentadas na célula apresenta 0,199999999999999000000000000000.

Isto acontece devido à forma como o sistema binário armazena números decimais internamente. As representações binárias de números decimais podem causar pequenas discrepâncias. O motor de cálculo no Pages, no Numbers e no Keynote sempre utilizou técnicas sofisticadas para impedir que estas diferenças se agreguem nos cálculos, mas em precisões muito altas, as diferenças podem tornar-se aparentes.

O novo motor de cálculo melhora significativamente em relação a versões anteriores ao utilizar a representação decimal de números ao longo do cálculo.

O resultado é que o mesmo cálculo = 10,0 – 9,8 agora resulta num valor de 0,2. Aumentar o número de casas decimais apresentadas mostra agora um valor de 0,2000000000000000000000000000000.

Exemplo 2

Nas versões anteriores do Numbers, a fórmula ARRED(8,415;2) devolve 8,41. Isto também acontece devido à forma como os valores são armazenados internamente no sistema binário.

Com o novo motor de cálculo, ARRED(8,415;2) devolve 8,42.

Acerca da codificação binária decimal em comparação com a codificação ponto decimal flutuante

A maioria dos computadores armazena números como uma série de zeros e uns, que correspondem a valores binários. Um processo denominado codificação binária decimal (BCD) converte números fracionários nos seus equivalentes binários. Quando os números são codificados através do BCD, alguns valores não podem ser representados com uma precisão completa. Por exemplo, 0,2 na forma binária 0,001100110011... (repetido). O valor tem de ser truncado para poder ser codificado com o BCD, o que altera ligeiramente o valor armazenado. Apesar de as discrepâncias introduzidas pelo BCD poderem ser muito pequenas, estas tornam-se mais aparentes quando amplificadas através de determinados tipos de cadeias de cálculos.

As versões mais recentes do Pages, do Numbers e do Keynote codificam números através da codificação ponto decimal flutuante (DFP) de 128 bits. Esta é uma forma muito mais precisa de codificar frações decimais, que evita erros de arredondamento frequentes da codificação BCD. Além disso, o motor de cálculo atualizado trabalha diretamente com números codificados com o DFP. Os valores nas células da tabela são armazenados de forma mais precisa e os resultados da fórmula são calculados de forma mais precisa.

Muitas fórmulas não apresentarão diferenças visíveis, mas os cálculos que resultarem em ou que utilizarem números extremamente pequenos poderão agora mostrar uma resposta ainda mais precisa.

Data de publicação: