Precision loss with large numbers or non-integer values
Problem or error: Due to limitations of the data types used in Campaign, precision loss can occur in a number of circumstances. For example, when numbers greater than 15-digits are used, Campaign approximates these values. Also, when adding non-integer values, precision is lost (for example, 95.1 + 4.9 may not equal exactly 100).
Solution: Possible workarounds: When working with non-integer values, if you can make them integers with fewer than 15-digits, there will be no loss of precision (for example, by multiplying the values in the previous example by 10 and adding a small delta and then using the FLOOR() macro to make it an integer, it would correctly compare 951 + 49 = 1000 as TRUE).
Alternatively, you can compare values using a small delta value rather than an exact comparison (for example, 95.1 + 4.9 > 100 – delta AND 95.1 + 4.9 < 100 + delta).
Lastly, if the values exist in the database, you could perform the computations in the database (for example, by writing a GROUPBY custom macro that sums these values for each customer).