Acerca del aumento de la precisión de los cálculos en Pages, Numbers y Keynote

Después de actualizar Pages, Numbers y Keynote, es posible que notes pequeños cambios en los resultados de los cálculos en tus documentos. Esto se debe a que la última versión de iWork incluye una actualización del motor de cálculo y ahora ofrece resultados todavía más precisos.

La mayoría de las fórmulas no presentan diferencias visibles, pero los cálculos que dan o usan números muy pequeños son ahora más exactos.

Ejemplo 1

En versiones anteriores de Numbers, Pages y Keynote, un cálculo como = 10,0 - 9,8 daba 0,199999999999999.

Para mostrar el resultado previsto (0,2), podías modificar el número de decimales mostrados en la celda (entre 1 y 14 posiciones decimales). Al aumentar el número de decimales mostrados en la celda, el resultado era 0,199999999999999000000000000000.

Esto se debe a la forma en que el binario almacena internamente los números decimales. Las representaciones binarias de números decimales pueden producir discrepancias muy pequeñas. El motor de cálculo de Pages, Numbers y Keynote ha empleado siempre técnicas complejas para evitar que estas diferencias se incluyeran en los cálculos, pero cuando se muestran resultados muy precisos, las diferencias pueden hacerse evidentes.

El nuevo motor de cálculo mejora de forma considerable las versiones anteriores, ya que utiliza una representación decimal de los números durante el cálculo.

El resultado es que el mismo cálculo = 10,0 - 9,8 ahora da 0,2. Al aumentar el número de decimales mostrados, ahora da 0,2000000000000000000000000000000.

Ejemplo 2

En versiones anteriores de Numbers, la fórmula REDONDEAR(8,415;2) devolvía 8,41. Esto también se debía a la forma en que se almacenan los valores internamente en binario.

Con el nuevo motor de cálculo, REDONDEAR(8,415;2) devuelve 8,42.

Diferencia entre decimal codificado en binario y coma flotante decimal

La mayoría de los ordenadores almacenan números como una serie de ceros y unos, que son valores binarios. Un proceso denominado Decimal en código binario (BCD) convierte los números fraccionarios en sus binarios equivalentes. Cuando los números se codifican utilizando el estándar BCD, algunos valores no se pueden representar con total precisión. Por ejemplo, 0,2 en forma binaria sería 0,001100110011... (periódico). El valor debe truncarse para poder codificarlo con BCD. Esto produciría una pequeña alteración del valor almacenado. Aunque las discrepancias introducidas por BCD pueden ser muy pequeñas, se hacen más evidentes cuando se amplifican con ciertos tipos de cadenas de cálculo.

Las últimas versiones de Pages, Numbers y Keynote codifican los números con el estándar Coma flotante decimal (DFP) de 128 bits. Este estándar codifica con más precisión las fracciones decimales y evita los errores de redondeo típicos de la codificación BCD. Además, el motor de cálculo actualizado trabaja directamente con números codificados con DFP; de esta manera, los valores de las celdas de la tabla se almacenan con mayor precisión y las fórmulas se calculan con más exactitud.

Muchas fórmulas no presentarán diferencias evidentes, pero los cálculos que den o usen números muy pequeños serán más exactos.

Fecha de publicación: