Was sind die Unterschiede zwischen numeric
, float
y decimal
Datentypen und welche sollten in welchen Situationen verwendet werden?
Welche Art von Finanztransaktion (z. B. für den Bereich Gehalt) wird bevorzugt und warum?
Was sind die Unterschiede zwischen numeric
, float
y decimal
Datentypen und welche sollten in welchen Situationen verwendet werden?
Welche Art von Finanztransaktion (z. B. für den Bereich Gehalt) wird bevorzugt und warum?
verwenden Sie die Schwimmer o real Datentypen nur wenn die Präzision, die durch dezimal (bis zu 38 Ziffern) ist nicht ausreichend
Näherungsweise numerische Datentypen (siehe Tabelle 3.3) speichern nicht die genauen Werte, die angegeben werden. für viele Zahlen; sie speichern eine extrem enge Annäherung an den Wert. ( Technet )
Vermeiden Sie die Verwendung von Float- oder Real-Spalten in den Suchbedingungen der WHERE-Klausel, insbesondere die Operatoren = und <>. Es ist am besten, Float- und Real-Spalten auf > oder < Vergleiche zu beschränken. ( Technet )
daher ist die Wahl von Decimal als Datentyp im Allgemeinen die beste Wahl, wenn
Hauptquelle : MCTS-Schulungspaket zum Selbststudium (Prüfung 70-433): Microsoft® SQL Server® 2008 Datenbank-Entwicklung - Kapitel 3 - Tabellen, Datentypen und deklarative Datenintegrität Lektion 1 - Auswahl von Datentypen (Richtlinien) - Seite 93
Richtlinien von MSDN: Verwendung von Dezimal-, Float- und Real-Daten
Die Standardeinstellung für die maximale Genauigkeit numerischer und dezimaler Datentypen ist 38. In Transact-SQL ist numeric funktional äquivalent zu decimal Datentyp. Verwenden Sie den Datentyp "Dezimal", um Zahlen mit Dezimalstellen zu speichern. wenn die Datenwerte genau wie angegeben gespeichert werden müssen.
Das Verhalten von float und real folgt der IEEE 754-Spezifikation für approximative numerische Datentypen. Aufgrund der approximativen Natur der float- und real-Datentypen sollten Sie diese Datentypen nicht verwenden, wenn ein exaktes numerisches Verhalten erforderlich ist, wie z.B. in Finanzanwendungen, bei Operationen, die Rundungen beinhalten, oder bei Gleichheitsprüfungen. Verwenden Sie stattdessen die Integer-, Dezimal-, Money- oder Smallmoney-Datentypen. Vermeiden Sie die Verwendung von float oder Real-Spalten in WHERE-Klausel-Suchbedingungen, insbesondere die = und <> Operatoren. Es ist am besten, Float- und Real-Spalten auf > oder < zu begrenzen. Vergleiche zu beschränken.
Dezimal y Numerisch sind identisch funktionell aber es gibt noch Vorrang des Datentyps was in manchen Fällen entscheidend sein kann.
SELECT SQL_VARIANT_PROPERTY(CAST(1 AS NUMERIC) + CAST(1 AS DECIMAL),'basetype')
Der resultierende Datentyp ist numerisch denn es braucht Vorrang des Datentyps .
Vollständige Liste der Datentypen nach Rangfolge:
Schwimmer ist der Datentyp Approximate-number, was bedeutet, dass nicht alle Werte im Datentypbereich exakt dargestellt werden können.
Dezimal/Numerisch ist ein Datentyp mit fester Genauigkeit, was bedeutet, dass alle Werte im Datentypbereich genau mit Genauigkeit und Skala dargestellt werden können. Sie können Dezimalzahlen verwenden, um Geld zu sparen.
Die Konvertierung von Decimal oder Numeric in Float kann zu einem gewissen Präzisionsverlust führen. Bei den Datentypen Decimal oder Numeric betrachtet SQL Server jede spezifische Kombination von Genauigkeit und Skala als einen anderen Datentyp. DECIMAL(2,2) und DECIMAL(2,4) sind unterschiedliche Datentypen. Das bedeutet, dass 11,22 und 11,2222 unterschiedliche Typen sind, obwohl dies bei float nicht der Fall ist. Für FLOAT(6) sind 11.22 und 11.2222 die gleichen Datentypen.
Sie können auch Folgendes verwenden Geld Datentyp, um Geld zu sparen. Dies ist ein nativer Datentyp mit 4-stelliger Genauigkeit für Geld. Die meisten Experten bevorzugen diesen Datentyp zum Sparen von Geld.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.