SQL setzt Fließkomma-Genauigkeit

8

Wie setze ich für einen SQL-Int, der in einen Float konvertiert wird, die Genauigkeit der Fließkommazahl?

Dies ist die Auswahl, die ich auf zwei oder drei Dezimalstellen abschneiden möchte:

%Vor%

Danke!

    
CodeKingPlusPlus 20.06.2012, 19:19
quelle

2 Antworten

22

In TSQL können Sie zwei verschiedene Größen für float , 24 oder 53 angeben wird die Genauigkeit auf 7 bzw. 15 Stellen einstellen.

Wenn Sie nur eine festgelegte Anzahl von Dezimalstellen abschneiden möchten, können Sie ROUND , dh:

%Vor%     
Bort 20.06.2012, 19:27
quelle
1

In der Regel können Sie die Anzahl der Nachkommastellen für eine Gleitpunktzahl nicht angeben. Fließkomma-Datentypen speichern die nächstgelegene Gleitkomma-Approximation für jeden gegebenen Wert. Die nächstgelegene Gleitkomma-Approximation hat wahrscheinlich nicht die gewünschte Anzahl von Stellen. Obwohl Sie möglicherweise jede Ziffer nach der dritten unterdrücken können, ändert das nur das Aussehen des Wertes, nicht den Wert selbst.

Ganzzahlen sind eine andere Geschichte. Eine Ganzzahl - gespeichert, konvertiert oder in einen Gleitkommadatentyp umgewandelt - wird genau über einen großen Bereich gespeichert. Fließkomma-Datentypen müssen keine Ganzzahleinheiten für Ganzzahlen speichern.

Ich würde vorschlagen, obwohl die beste Vorgehensweise für Sie ist

  • Vermeiden Sie das Umsetzen von Ganzzahlen auf Gleitkommazahlen, wenn Sie keine Brucheinheiten oder
  • benötigen
  • wandelt Ganzzahlen in Dezimalzahlen oder Zahlen um, wenn Teileinheiten oder
  • benötigt
  • handle zeigt Probleme vollständig im Anwendungscode an.
quelle