Pérdida de precisión con números grandes o valores no de entero
Problema o error: debido a las limitaciones de los tipos de datos utilizados en Campaign, se puede producir la pérdida de precisión en diversas circunstancias. Por ejemplo, cuando se utilizan números con más de 15 dígitos, Campaign realiza una aproximación de estos valores. Además, al añadir valores no de entero, la precisión se pierde (por ejemplo, 95,1 + 4,9 puede no ser exactamente igual a 100).
Solución: posibles métodos alternativos: cuando trabaje con valores no de entero, si puede convertirlos en enteros con menos de 15 dígitos, no habrá pérdida de precisión. Por ejemplo, multiplicando los valores en el ejemplo anterior por 10 y añadiendo un delta pequeño como, por ejemplo 0,3, y a continuación utilizando la macro FLOOR() para convertirlo en un entero. Esta acción compararía correctamente 951 + 49 = 1000 como TRUE.
Alternativamente, puede comparar valores utilizando un valor delta pequeño en lugar de una comparación exacta (por ejemplo, 95,1 + 4,9 > 100 – delta AND 95,1 + 4,9 < 100 + delta).
Por último, si existen los valores en la base de datos, podría realizar los cálculos en la base de datos (por ejemplo, escribiendo una macro personalizada GROUPBY que sumara estos valores para cada cliente).