I have a field with FLOAT(53)
datatype in SQL Server. Upon importing it in Informatica, it becomes FLOAT(15)
.
What datatype I should be using to get max possible accuracy?
Ok, a bunch of issues here.
- Check this doc to learn about the available data types in Informatica
- If you want "max possible accuracy" you should use DECIMAL :) FLOAT (even Double) - is not a precise data type. It allows large numbers, it allows fractions - but it's not precise. In fact it's impossible to represent 0.1! :)
- If you'll use DECIMAL, you'll have the precise number as long as it won't exceed 15 digits. For a larger numbers you will end up with DOUBLE anyway, unless...
- You enable
HIGH PRECISION
in your session properties. Then you will keep using precise DECIMAL numbers up to 38 digits.
- If you'll exceed 38 digits, you will end up with non-precise DOUBLE anyway. Yup - even with
HIGH PRECISION
enabled - check this doc.
In your case I presume you should use DOUBLE
- the FLOAT
in your SQL Server is not a precise type anyway.
This is also a great summary on the issue.