Frage von JamesOffice, 36

Unterschied zwischen DECIMAL und FLOAT in DB2 bzw. SQL?

Hallo, könnte mir jemand bitte erklären was der Unterschied zwischen DECIMAL und FLOAT in SQL ist und wann ich den einen oder den anderen verwenden muss! Vielen Dank im Voraus!

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von tgel79, 19

"floats" (eigentlich REAL in Standard-SQL) entsprechen einer 32-Bit Gleitkommazahl (ähnlich wie double) mit der die Hardware deines Computers standardmäßig rechnet.

Siehe auch https://de.wikipedia.org/wiki/Gleitkommazahl

Bei NUMERIC (in Standard-SQL, oder auch DECIMAL z.B. in SQL-Server) kannst du (mehr oder weniger) angeben, wieviele Nachkommastellen du berücksichtigt haben möchtest. (Fixed Point arithmetic). Bei größeren Genauigkeiten wird die Arithmetik aber in Software umgesetzt und kann sehr langsam werden.

NUMERIC eignet sich z.B. für Geldangaben (NUMERIC(6,2) solange sich alles unter einer Millonen bewegt).

Kommentar von wotan38 ,

In meinem DB2 wird zwischen numeric und decimal nicht wirklich unterschieden. Im Grunde genommen ist numeric das Selbe wie decimal ohne Kommastellen. So jedenfalls kommen die Daten beim Lesen aus der Datenbank im Programm an. Ob das bei anderen Datenbanksystem auch so ist, weiß ich nicht.

Antwort
von Dereta, 21

Dezimal ist nur eine Beschreibung für die stellen nach dem Komma. Das was du meinst ist vermutlich der unterschied zwischen Double und Float. Float ist genauer als Double. Soweit mir bekannt ist kannst du mit Double bis zu 8 stellen und bei Float bis zu 16 stellen nach dem Komma anzeigen.

Grüße

Kommentar von wotan38 ,

Ich habe eher 16 bzw. 32 Stellen in Erinnerung. 8 Stellen für Gleitkomma dürfte kein Angebot für die Praxis sein, dann besser 64 Stellen bei der doppelten Genauigkeit.

In vielen statistischen Berechnungen müssen winzig kleine Differenzen aus sehr großen Zahlen ermittelt werden.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten