Controlar el redondeo y la precisión decimal en expresiones numéricas

En los cálculos que involucran una multiplicación o división, Analytics redondea el resultado al mayor número de lugares decimales de los dos operandos. Este método de redondeo se asocia con la aritmética de punto fijo que Analytics utiliza para evaluar la mayoría de las expresiones numéricas.

Para las expresiones con varios operandos (como a*b/c ), el redondeo se aplica en cada etapa de la expresión, comenzando por la primera etapa evaluada y repitiendo el procedimiento hasta que se evalúa completamente la expresión.

Nota

Una de las causas más comunes de errores de cálculo es no conocer bien el funcionamiento del redondeo en Analytics.

Aritmética de punto fijo

El redondeo en Analytics se asocia a la aritmética de punto fijo que Analytics utiliza para las operaciones numéricas (a excepción de las funciones financieras). Analytics utiliza la aritmética de punto fijo por dos razones:

  • Aumenta la velocidad de procesamiento
  • Le permite al usuario controlar el redondeo y los lugares decimales

Redondeo en multiplicaciones

Considere la expresión 1,1 * 1,1. La respuesta correcta es 1,21. Sin embargo, Analytics redondea el resultado a una posición decimal porque ese es el número mayor de espacios decimales en los operandos.

1,1 * 1,1 = 1,2

Si uno de los operandos tiene dos espacios decimales, Analytics redondea la parte decimal del resultado a la cantidad mayor de espacios decimales de los operandos. En este ejemplo en particular, no es necesario ningún redondeo:

1,10 * 1,1 = 1,21

Redondeo en divisiones

Considere la expresión 7/3. La respuesta correcta es 2,333... Sin embargo, Analytics redondea el resultado a cero espacios decimales porque ninguno de los operandos tiene valores decimales.

7/3 = 2

Si uno o ambos operandos tienen espacios decimales, Analytics redondea la parte decimal del resultado a la cantidad mayor de espacios decimales de los operandos:

7/3,00 = 2,33 
7,000/3,00 = 2.333

Agregar lugares decimales para controlar el redondeo.

La manera más sencilla de controlar el redondeo y lograr la precisión decimal deseada consiste en multiplicar una expresión por 1, seguido de la cantidad de espacios decimales de precisión que desee obtener en el resultado. Por ejemplo, multiplique por 1,0000 para asegurarse de que un resultado tenga una precisión de cuatro espacios decimales.

Ejemplo

Problema

En las siguientes expresiones, Analytics redondea el resultado a dos espacios decimales, pero esta precisión no es suficiente para sus requisitos:

7,21 * 2,33 = 16,80
7,21 / 2,33 = 3,09

Solución

Para aumentar la precisión del resultado, multiplique por 1 seguido de la cantidad de lugares decimales de precisión que desee:

1,0000 * 7,21 * 2,33 = 16,7993
1,000000 * 7,21 / 2,33 = 3,094421

¡Precaución!

Coloque el 1 al principio de una expresión. Si coloca el 1 en otro lugar, es posible que no se ajuste la precisión porque la precisión de los dos primeros operandos que se evalúan ya puede haber obligado a un redondeo:

7,21 * 2,33 * 1,0000= 16,8000
7,21 / 2,33 * 1.000000 = 3.090000

Tenga cuidado al usar paréntesis

Cuando utilice paréntesis, tenga cuidado de especificar el orden de las operaciones matemáticas. Si usa paréntesis, es posible que el ajuste de precisión no funcione porque la precisión de los operandos entre paréntesis ya provocó un redondeo:

1,0000 * (7,21 * 2,33) = 16,8000

Si incorpora el 1 dentro del paréntesis puede resolver el problema:

(1,0000 * 7,21 * 2,33) = 16,7993

Comportamiento del redondeo en expresiones con varios operandos

El comportamiento del redondeo y la precisión decimal se comportan del mismo modo sin importar la cantidad de operandos que contenga una expresión. Analytics redondea el resultado a la mayor cantidad de espacios decimales de los dos operandos a medida que evalúa las expresiones de a pares.

Sin embargo, por el funcionamiento del redondeo acumulativo en una expresión de varios operandos, la precisión decimal establecida por los dos primeros operandos que se evalúan es la precisión que se aplica al resultado de la expresión.

Otra característica del redondeo acumulativo es que la pérdida de la precisión decimal aumenta en cada etapa de una expresión de varios operandos.

Ejemplo de precisión con dos espacios decimales

La siguiente tabla muestra de qué manera Analytics aplica el redondeo a medida que calcula la siguiente expresión de varios operandos:

1,1 * 1,12 * 1,123 * 1,1234 = 1,5514

La cantidad mayor de espacios decimales en la primera etapa evaluada de la expresión es dos ( 1,1 * 1,12 ). Esta precisión de dos espacios decimales continúa a lo largo del resto de la expresión de varios operandos (indicado por los dígitos en rojo).

La columna Diferencia del resultado muestra de qué manera la pérdida acumulativa de precisión aumenta en cada etapa de la evaluación.

Cálculos de Analytics

(por orden de evaluación)

Resultado de Analytics

(redondeado)

Cálculos sin redondear

(por orden de evaluación)

 

Resultado sin redondear

 

Diferencia del resultado

1,1 * 1,12 1,23 1,1 * 1,12 1,232 0,002
1,23 * 1,123 1,381 1,232 * 1,123 1,383536 0,002536
1,381 * 1,1234 1,5514 1,383536 * 1,1234 1,5542643424 0,0028643424

Una observación más detallada de la precisión

En la columna Resultado de ACL (redondeado), todos los espacios decimales después de los dos primeros son imprecisos si se los compara con el Resultado sin redondear correspondiente. El grado de imprecisión probablemente sea su mayor preocupación al realizar cálculos numéricos como parte del análisis de datos.

Los resultados redondeados no son imprecisos en el contexto de los cálculos de pares específicos que los generan. Por ejemplo, 1,23 * 1,123 = 1,38129. Si este valor se redondea a tres espacios decimales, según la regla, se convierte en 1,381. Sin embargo, 1,23 era un redondeo anterior de 1,232, lo cual significa que el cálculo de los pares específicos ya contenía cierto grado de imprecisión.

Ejemplo de precisión con cinco espacios decimales

La siguiente tabla muestra de qué manera Analytics aplica el redondeo después de que se agrega 1,00000 para especificar una precisión de cinco espacios decimales:

1,00000 * 1,1 * 1,12 * 1,123 * 1,1234 = 1,55427

La cantidad mayor de espacios decimales en la primera etapa evaluada de la expresión es cinco ( 1,00000 * 1,1 ). Esta precisión de cinco espacios decimales continúa a lo largo del resto de la expresión de varios operandos (indicado por los dígitos en rojo).

Cálculos de Analytics

(por orden de evaluación)

Resultado de Analytics

(redondeado)

Cálculos sin redondear

(por orden de evaluación)

Resultado sin redondear Diferencia del resultado
1,00000 * 1,1 1,10000 1,00000 * 1,1 1,10000 0,00000
1,10000 * 1,12 1,23200 1,10000 * 1,12 1,23200 0,00000
1,23200 * 1,123 1,38354 1,23200 * 1,123 1,383536 0,000004
1,383536 * 1,1234 1,55427 1,383536 * 1,1234 1,5542643424 0,0000056576

Especificar el orden de las operaciones

La colocación de paréntesis desempeña un papel importante en la determinación del nivel de precisión que se obtiene en el cálculo. Tenga cuidado cuando utilice paréntesis para anular el orden normal de las operaciones.

Calcular el interés de un día

El escenario

Necesita calcular el interés de un día en $100.000 al 12 % anual.

Un enfoque

Puede calcular primero la tasa de interés por día y, a continuación, multiplicar la tasa diaria por 100.000. Sin embargo, con este enfoque surgen problemas con el redondeo.

100000 * (0,12/365) = 0,00

Analytics divide primero 0,12 por 365, lo cual, según las bases de redondeo de Analytics da como resultado 0,00. El resultado real es 0,00032876712. Pero como el resultado se redondea a dos lugares decimales, todos los dígitos posteriores se pierden.

A continuación, el resultado redondeado se multiplica por 100000, lo que da 0,00, aunque la respuesta correcta es 32,876712.

Un enfoque alternativo

Podría calcular primero el importe total de interés para el año y después dividir el importe por 365. Este enfoque alternativo evita los problemas con el redondeo.

100000 * 0,12/365 = 32,88

Sin los paréntesis, los resultados de cada etapa del cálculo continúan siendo superiores a 1, se evitan todos los problemas de redondeo de decimales y la respuesta se calcula con precisión (dos lugares decimales).

Cambiar el funcionamiento de la precisión decimal

Puede usar el comando SET MATH para cambiar el funcionamiento de la precisión decimal en las expresiones numéricas. Por valor predeterminado, Analytics utiliza la cantidad máxima o superior de espacios decimales al evaluar dos operandos. Al usar la cantidad máxima se preserva la mayor cantidad de precisión en cada etapa de una expresión.

El uso de SET MATH en la línea de comandos o en un script de Analytics cambia el comportamiento predeterminado para toda la sesión de Analytics. En el siguiente resumen de opciones, se muestran los distintos resultados para la expresión 1,275 * 1,3. El resultado real sin redondear es 1,6575.

Comando Descripción Resultado de 1,275 * 1,3
SET MATH FIRST utiliza la cantidad de posiciones decimales del primer operando en un par de operandos 1,658
SET MATH LAST utiliza la cantidad de posiciones decimales del último operando en un par de operandos 1,7
SET MATH MIN utiliza la cantidad mínima de posiciones decimales en un par de operandos 1,7
SET MATH MAX

Predeterminado

utiliza la cantidad máxima de posiciones decimales en un par de operandos 1,658
Si desea obtener información detallada sobre SET MATH, consulte el Comando SET.
Ayuda de Analytics 14.1