Numerico/Decimal sono tipi di dati a precisione fissa. Memorizzerà i valori con la precisione esatta e ridimensionerà ciò che hai definito.
Se hai bisogno di archiviare dati in cui una piccola differenza non ha importanza, puoi utilizzare Float o Real. Ma se hai bisogno di dati esatti come per l'applicazione finanziaria. Dovresti utilizzare il tipo di dati Numerico/Decimale o Denaro per salvare i dati esatti, poiché una piccola differenza può influire sui calcoli.
Esempio:
Dichiariamo due variabili e salviamo gli stessi dati e vediamo cosa succede all'output a causa del tipo di dati di esse.
DECLARE @DecimalVariable DECIMAL(8, 2) SET @DecimalVariable = 213429.95 DECLARE @FloatVariable FLOAT(24) SET @FloatVariable = 213429.95 SELECT @DecimalVariable AS DecimalVariable ,@FloatVariable AS FloatVariable
Differenza tra float e decimale/numerico in SQL Server - T SQL Tutorial
Come possiamo vedere nell'istantanea sopra, Decimal ha memorizzato e mostrato valori esatti e dove abbiamo salvato i valori in float, ha arrotondato i valori.
Poiché i tipi di dati float/real sono tipi di dati approssimativi, evita di usarli utilizzando la clausola Where specialmente con gli operatori =o <>.