Hi ,
Thanks for reaching out to Microsoft Q&A.
FLOAT and REAL in SQL Server are IEEE-754 binary floating-point types. They cannot guarantee exact decimal precision. They always round when converted to character formats, and every tool (ADF, SSMS, .NET, JDBC, ODBC) prints floating-point values differently because each one decides how many digits to emit.
Why the huge difference?
Direct Copy works because ADF uses its own internal text serializer, which chooses enough digits so that Snowflake can reconstruct the same binary value.
Your CSV export does not. ADF and SQL Server connectors choose their own default formatting (typically 7 digits for REAL/24-bit float, 15–17 for FLOAT(53)), which causes the rounding you are seeing. This is why your CSV looks different from SSMS and different from the ADF direct-copy internal file. If you want bit-exact reproducibility for FLOAT/REAL values, you have only one reliable option --> You must export them as text, not as numeric.
Please 'Upvote'(Thumbs-up) and 'Accept' as answer if the reply was helpful. This will be benefitting other community members who face the same issue.