Numérico/Decimal son tipos de datos de precisión fija. Almacenará los valores con precisión exacta y escalará lo que haya definido.
Si necesita almacenar datos donde la pequeña diferencia no importa, puede usar Float o Real. Pero si necesita tener datos exactos, como para una aplicación financiera. Debe usar el tipo de datos Numérico/Decimal o Dinero para guardar datos exactos, ya que una pequeña diferencia puede afectar los cálculos.
Ejemplo:
Declaremos dos variables y guardemos los mismos datos y veamos qué sucede con la salida debido a su tipo de datos.
DECLARE @DecimalVariable DECIMAL(8, 2) SET @DecimalVariable = 213429.95 DECLARE @FloatVariable FLOAT(24) SET @FloatVariable = 213429.95 SELECT @DecimalVariable AS DecimalVariable ,@FloatVariable AS FloatVariable

Como podemos ver en la instantánea anterior, Decimal almacenó y mostró valores exactos y donde hemos guardado valores en flotante, redondeó los valores.
Como los tipos de datos flotantes/reales son tipos de datos aproximados, evite usarlos en la cláusula Where especialmente con los operadores =o <>.