Problem:

On some measure, that could even be very basic (no calculation, no weighted average roll-up or other calculation), an arithmetic overflow may occur during cube generation when source data exceed the maximum that Transformer can store in a cube. The error message then is :

(TR1901) PDS-PPE-0104 A record was rejected. An arithmetic overflow occurred. (Data) in <cubename>.mdc

You wonder "what is the maximum value that Transformer can store when measure type is "64-bit floating point" ?"

Solution:

What Transformer can store is far less than what is theoretically allowed by IEEE 754 standard for 64-bit floating point type (precision up to 308).

In Transformer, if Precision field is set to 0, the maximum [integer] value is :

9,223,372,036,854,775,296 and so the minimum value is -9,223,372,036,854,775,296

This corresponds to the following other values :

7FFFFFFFFFFFFE00 in hexadecimal

111111111111111111111111111111111111111111111111111111000000000 in binary

which can also be calculated as 2^63 - 2^9

If Precision is more that 0, then just move the coma to the left. For example, if Precision is set to 9 (which is the maximum in Transformer), the maximum [decimal] value that can be stored is :

9,223,372,036.854775296 (about 9 billions with nine decimal digits)

www.cogknowhow.com