Comment convertir des nombres à virgule (float) en entiers (int) en SQL
En SQL Server, les nombres à virgule (double précision) sont de type float. Pour les convertir en entier, on utilise CAST(). CAST() tronque (pas d'arrondi). Pour arrondir, combinez avec ROUND().
Étape 1 : Ouvrir SSMS
Lancez SQL Server Management Studio.
Étape 2 : Nouvelle requête
Ouvrez une fenêtre de requête.
Étape 3 : Conversion sans arrondi (troncation)
Exécutez :
SELECT CAST( AS INT)
Remplacez par votre nombre (ex: CAST(12.9 AS INT) → 12).
Étape 4 : Conversion avec arrondi
Exécutez :
SELECT CAST(ROUND(CAST( AS DECIMAL(10,3)), 0) AS INT)
Ex: 12.9 → 13. Le cast en DECIMAL(10,3) évite les erreurs de débordement sur ROUND().
Astuce
CONVERT() peut remplacer CAST().
Avertissements
- Sans cast intermédiaire en DECIMAL,
ROUND()peut causer une erreur de débordement arithmétique si le résultat a plus de chiffres que l'argument original. - Hors plage
[-2 147 483 647 ; 2 147 483 647]→ erreur de débordement (limites du type INT).
