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, multiply the values in the previous example by 10, add a small delta such as .3, then use the FLOOR() macro to change the value to an integer. This 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).