Direttamente dal manuale:
I tipi decimal
e numeric
sono equivalenti. Entrambi i tipi fanno parte dello standard SQL.
Per quanto riguarda il "perché devo usarlo", questo è spiegato anche nel manuale:
Il tipo numerico può memorizzare numeri con un numero molto elevato di cifre ed eseguire calcoli esattamente
(sottolineatura mia).
Se hai bisogno di numeri con decimali, usa decimal
(o numeric
) se hai bisogno di numeri senza decimali, usa integer
o bigint
. Un uso tipico di decimal
come tipo di colonna sarebbe una colonna "prezzo del prodotto" o un "tasso di interesse". Un uso tipico di un tipo intero sarebbe ad es. una colonna che memorizza quanti molti i prodotti sono stati ordinati (supponendo che tu non possa ordinare "mezzo" prodotto).
double
e real
sono anche tipi che possono memorizzare valori decimali, ma sono approssimativi tipi. Ciò significa che non recuperi necessariamente il valore che hai memorizzato. Per i dettagli, vedere:http://floating-point-gui.de/