Direkt aus dem Handbuch:
Die Typen decimal
und numeric
sind gleichwertig. Beide Typen sind Teil des SQL-Standards.
Das "Warum muss ich es verwenden" wird auch im Handbuch erklärt:
Der Typ numeric kann Zahlen mit sehr vielen Stellen speichern und Rechnungen exakt durchführen
(Hervorhebung von mir).
Wenn Sie Zahlen mit Dezimalstellen benötigen, verwenden Sie decimal
(oder numeric
) Wenn Sie Zahlen ohne Dezimalstellen benötigen, verwenden Sie integer
oder bigint
. Eine typische Verwendung von decimal
als Spaltentyp wäre eine "Produktpreis"-Spalte oder ein "Zinssatz". Eine typische Verwendung eines Integer-Typs wäre z. eine Spalte, die speichert, wie viele Produkte bestellt wurden (vorausgesetzt, Sie können nicht "halbe" Produkte bestellen).
double
und real
sind auch Typen, die Dezimalwerte speichern können, aber sie sind ungefähr Typen. Das bedeutet, dass Sie nicht unbedingt den gespeicherten Wert abrufen. Einzelheiten finden Sie unter:http://floating-point-gui.de/