Table of Contents

Search

  1. Preface
  2. Informatica Developer
  3. The Model Repository
  4. Searches in Informatica Developer
  5. Connections
  6. Physical Data Objects
  7. Flat File Data Objects
  8. Logical View of Data
  9. Viewing Data
  10. Application Deployment
  11. Application Patch Deployment
  12. Application Patch Deployment Example
  13. Continuous Integration and Continuous Delivery (CI/CD)
  14. Object Import and Export
  15. Appendix A: Data Type Reference
  16. Appendix B: Keyboard Shortcuts
  17. Appendix C: Connection Properties

Developer Tool Guide

Developer Tool Guide

Precision Loss for Decimal and Double Values

Precision Loss for Decimal and Double Values

Precision loss can occur with decimal and double data types in a calculation when the result produces a value with a precision greater than the maximum allowed digits.
If the precision is greater than the maximum allowed digits, the Data Integration Service stores the result as a double.
Precision loss can also occur during intermediate calculations if there is a change in the precision or scale of intermediate results. The precision and scale of intermediate results can affect the precision or scale of the final result.

Precision Loss when High Precision is Disabled

If you disable high precision, the Data Integration Service converts decimal values to double. Precision loss occurs if the decimal value has a precision greater than 15 digits. For example, you have a mapping with Decimal (20,0) that passes the number 40012030304957666903. If you disable high precision, the Data Integration Service converts the decimal value to double and passes 4.00120303049577 x 10
19
.
Additional precision loss can occur if you use expressions in transformations that have intermediate calculations. If you disable high precision, the Data Integration Service converts the intermediate result to double and uses the intermediate result with lower precision to perform the following calculation in the expression. As a result, the Data Integration Service might produce a different output for expressions based on the order of the arguments. For example, when you disable high precision, the output for tan(90*$pi /180) is different from tan(90/180*$pi). The Data Integration Service performs the intermediate calculations in these expressions as follows:
tan(90*$pi/180) = tan(1.5707963267950003) = -9.649380295141232E12
tan(90/180*$pi) = tan(1.570796326795) = -9.670099380792184E12

0 COMMENTS

We’d like to hear from you!