Collections:
Precision and Rounding of FLOAT Values in SQL Server Transact-SQL
How REAL and FLOAT Literal Values Are Rounded in SQL Server Transact-SQL?
✍: FYIcenter.com
By definition, FLOAT(n) should store the mantissa of the floating number in n bits. For example, FLOAT(16) should have a precision one-byte less than FLOAT(24).
However, SQL Server Transact-SQL only supports two precisions for floating numbers:
The tutorial exercise below shows you some different precision and rounding examples:
-- FLOAT(1) works like FLOAT(24) DECLARE @x FLOAT(1) SET @x = 9.234567890E+10; SELECT @x; ------------ 9.234568E+10 -- 7 digits precision -- Single precision with rounding DECLARE @x REAL; -- FLOAT(24) SET @x = 9.234567890E+10; SELECT @x; ------------ 9.234568E+10 -- 7 digits precision -- FLOAT(25) works like FLOAT(53) DECLARE @x FLOAT(25); SET @x = 9.2345678901234567890E+100; SELECT @x; --------------------- 9.23456789012346E+100 -- 15 digits precision -- Double precision with rounding DECLARE @x FLOAT(53); SET @x = 9.2345678901234567890E+100; SELECT @x; --------------------- 9.23456789012346E+100 -- 15 digits precision
In other words, Transact-SQL is not truly respecting FLOAT(n) declaration.
⇒ Underflow and Overflow of FLOAT Values in SQL Server Transact-SQL
⇐ Approximate Numeric Data Types in SQL Server Transact-SQL
2017-04-19, 13745🔥, 0💬
Popular Posts:
How to download and install Microsoft SQL Server Management Studio Express in SQL Server? Microsoft ...
How To Change the Name of a Database User in SQL Server? If you want to change the name of an existi...
What Happens to Your Transactions When ERROR 1213 Occurred in MySQL? If your transaction receives th...
What Happens If the Imported Table Already Exists in Oracle? If the import process tries to import a...
What Privilege Is Needed for a User to Delete Rows from Tables in Another Schema in Oracle? For a us...