Acerca de una mayor 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 los documentos. Esto se debe a que la versión más reciente de iWork incluye una actualización del motor de cálculo, que brinda resultados con una precisión aún mayor que antes.

En la mayoría de las fórmulas, no habrá una diferencia visible, pero es posible que los cálculos que tienen como resultado o usan números extremadamente pequeños ahora muestren una respuesta aún más precisa.

Ejemplo 1

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

Al cambiar la cantidad de decimales que se muestran en la celda (entre 1 y 14 posiciones decimales), se puede solucionar el problema para mostrar el resultado esperado de 0,2. Al aumentar la cantidad de decimales visibles en las celdas, se muestra 0,199999999999999000000000000000.

Esto sucede debido a la forma en que el binario almacena internamente los números decimales. Las representaciones binarias de números decimales pueden provocar discrepancias muy pequeñas. El motor de cálculo en Pages, Numbers y Keynote siempre utilizó técnicas sofisticadas para evitar que estas diferencias se sumen a los cálculos, pero en precisiones muy altas, las diferencias pueden ser evidentes.

El nuevo motor de cálculo mejora considerablemente las versiones anteriores, ya que usa una representación decimal de números en todo el cálculo.

Como consecuencia, el mismo cálculo = 10,0 - 9,8 ahora tiene como resultado un valor de 0,2. Al aumentar la cantidad de decimales visibles, ahora el valor que se muestra es 0,2000000000000000000000000000000.

Ejemplo 2

En versiones anteriores de Numbers, la fórmula REDONDEAR(8,4152) muestra el resultado 8,41. Esto también sucede debido a la forma en que los valores se almacenan internamente en el binario.

Con el nuevo motor de cálculo, REDONDEAR(8,4152) muestra el resultado 8,42.

Acerca de la codificación de decimal codificado en binario en comparación con el punto flotante decimal

La mayoría de las computadoras almacenan números como una serie de ceros y unos, que son valores binarios. Un proceso llamado codificación de decimal codificado en binario (BCD) convierte números fraccionarios en equivalentes binarios. Cuando los números se codifican con BCD, algunos valores no pueden representarse con total precisión. Por ejemplo, 0,2 en forma binaria 0,001100110011... (periódico). El valor se debe truncar para codificarlo con BCD, lo que cambia un poco el valor almacenado. Aunque las discrepancias que provoca BCD pueden ser muy pequeñas, estas son más evidentes cuando aumentan en determinados tipos de cadenas de cálculo.

Las versiones más recientes de Pages, Numbers y Keynote codifican números con la codificación de punto flotante decimal (DFP) de 128 bits. Esta es una forma mucho más precisa de codificar fracciones decimales que evita los errores de redondeo típicos de la codificación BCD. Además, el motor de cálculo actualizado funciona directamente con números codificados con DFP: los valores en las celdas de la tabla se almacenan con mayor precisión y los resultados de las fórmulas se calculan con mayor precisión.

Muchas fórmulas no mostrarán una diferencia visible, pero es posible que los cálculos que tengan como resultado o usen números extremadamente pequeños ahora muestren una respuesta aún más precisa.

Fecha de publicación: