sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cuál es la diferencia entre Float y Numeric/Decimal en SQL Server - Tutorial de SQL Server/T-SQL Parte 33

Flotante y Real son tipos de datos aproximados. Los tipos de datos Flotante y Real no almacenan valores exactos para muchos números. El valor puede ser extremadamente cerrado.

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
 
 
 
 Diferencia entre flotante y decimal/numérico en SQL Server - Tutorial de T SQL 
 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 <>.