Numeric/Decimal são tipos de dados de precisão fixa. Ele armazenará os valores com precisão exata e dimensionará o que você definiu.
Se você precisar armazenar dados onde pequenas diferenças não importam, você pode usar Float ou Real. Mas se você precisa ter dados exatos como para aplicação financeira. Você deve usar o tipo de dados Numérico/Decimal ou Dinheiro para salvar dados exatos, pois pequenas diferenças podem afetar os cálculos.
Exemplo:
Vamos declarar duas variáveis e salvar os mesmos dados e ver o que acontece com a saída devido ao tipo de dados delas.
DECLARE @DecimalVariable DECIMAL(8, 2) SET @DecimalVariable = 213429.95 DECLARE @FloatVariable FLOAT(24) SET @FloatVariable = 213429.95 SELECT @DecimalVariable AS DecimalVariable ,@FloatVariable AS FloatVariable
Diferença entre Float e Decimal/Numeric no SQL Server - T SQL Tutorial
Como podemos ver no instantâneo acima, Decimal armazenou e mostrou valores exatos e onde salvamos valores em float, ele arredondava os valores.
Como os tipos de dados float/real são tipos de dados aproximados, evite usá-los usando a cláusula Where especialmente com os operadores =ou <>.