Потеря точности при использовании больших чисел или нецелочисленных значений
Проблема или ошибка: Из-за ограничений типов данных, используемых в компоненте Campaign, в ряде случаев может теряться точность. Например, если в числах больше 15 цифр, Campaign дает приблизительные значения. Кроме того, при добавлении нецелочисленных значений теряется точность (например, 95,1 + 4,9 не обязательно будет равно 100).
Решение: Возможные обходные пути: При работе с нецелочисленными значениями, если можно сделать эти значения целыми числами с числом цифр меньше 15, потери точности не произойдет (например, если умножить значения, представленные в предыдущем примере, на 10 и добавить небольшую разницу, а затем использовать макрокоманду FLOOR(), чтобы сделать это значение целым числом, сравнение будет сделано правильно: 951 + 49 = 1000 дает TRUE).
Или можно сравнить значения с использованием небольшого разностного значения, а не точного сравнения (например, 95.1 + 4.9 > 100 – delta AND 95.1 + 4.9 < 100 + delta).
И, наконец, если значения существуют в базе данных, можно выполнить вычисление в базе данных (например, записав пользовательскую макрокоманду GROUPBY, которая позволяет сложить эти значения для каждого покупателя).