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, 13382🔥, 0💬
Popular Posts:
Where to find answers to frequently asked questions I am new to Oracle database. Here is a list of f...
What are single-byte character string data types supported in SQL Server Transact-SQL? Single-byte c...
How to continue to the next iteration of a WHILE loop in SQL Server Transact-SQL? How to use CONTINU...
What Happens to Your Transactions When ERROR 1205 Occurred in MySQL? If your transaction receives th...
How To Install PHP on Windows in MySQL? The best way to download and install PHP on Windows systems ...