Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Was ist der Unterschied zwischen Float und Numeric/Decimal in SQL Server - SQL Server / T-SQL-Tutorial Teil 33

Float und Real sind ungefähre Datentypen. Float- und Real-Datentypen speichern für viele Zahlen keine genauen Werte. Der Wert kann extrem geschlossen sein.

Numerisch/Dezimal sind Datentypen mit fester Genauigkeit. Es speichert die Werte mit exakter Genauigkeit und skaliert das, was Sie definiert haben.

Wenn Sie Daten speichern müssen, bei denen kleine Unterschiede keine Rolle spielen, können Sie Float oder Real verwenden. Aber wenn Sie genaue Daten benötigen, z. B. für die Finanzanwendung. Sie sollten den Datentyp „Numerisch/Dezimal“ oder „Geld“ verwenden, um exakte Daten zu speichern, da sich kleine Unterschiede auf Berechnungen auswirken können.

Beispiel:


Lassen Sie uns zwei Variablen deklarieren und dieselben Daten speichern und sehen, was aufgrund ihres Datentyps mit der Ausgabe passiert.
DECLARE @DecimalVariable DECIMAL(8, 2)

SET @DecimalVariable = 213429.95

DECLARE @FloatVariable FLOAT(24)

SET @FloatVariable = 213429.95

SELECT @DecimalVariable AS DecimalVariable
    ,@FloatVariable AS FloatVariable
 
 
 
 Unterschied zwischen Float und Decimal/Numeric in SQL Server – T SQL Tutorial 
 Wie wir im obigen Schnappschuss sehen können, hat Decimal genaue Werte gespeichert und angezeigt, und wo wir Werte in Float gespeichert haben, wurden die Werte gerundet. 

Da es sich bei Float-/Real-Datentypen um ungefähre Datentypen handelt, vermeiden Sie ihre Verwendung in der Where-Klausel, insbesondere mit den Operatoren =oder <>.