Cómo convertir valores double a enteros en SQL Server

En SQL Server, los números de punto flotante de doble precisión usan el tipo de dato "float". A veces necesitas convertirlos a entero. Se usa la función T-SQL "CAST()". "CAST()" no redondea automáticamente, pero puede combinarse con "ROUND()" si se desea redondeo.

Paso 1

Abre SQL Server Management Studio.

Paso 2

Abre una nueva ventana de consulta.

Paso 3

Convierte sin redondear con CAST(): ejecuta SELECT CAST(<float> AS INT) sustituyendo <float> por tu número.

Paso 4

Convierte y redondea con: SELECT CAST(ROUND(CAST(<float> AS DECIMAL(10,3)), 0) AS INT).

Consejo

Puedes usar "CONVERT()" en lugar de "CAST()" si lo prefieres.

Advertencia

"ROUND()" devuelve tipo numérico. Si no casteas el float a decimal dentro de la llamada, puede ocurrir error de desbordamiento aritmético si el resultado tiene más dígitos que el original.

Convertir números fuera del rango [-2.147.483.647, 2.147.483.647] causa error de desbordamiento por exceder el rango del tipo INT.