IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

[SQL2K] Float vs Decimal


Sujet :

MS SQL Server

  1. #1
    Membre éclairé
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Points : 776
    Points
    776
    Par défaut [SQL2K] Float vs Decimal
    J'avais une base de données avec des données monétaires enregistrées dans un type float. J'avais un problème. Certaines données, au lieu d'enregistrer par exemple 2545,23 me retournait suite à un SELECT 2545,22999999999.

    En remplaçant les floats par un decimal le problème est réglé.
    Après investigation sur le float versus le decimal voici ce que j'ai trouvé.

    Un float enregistre les données après la virgule de façon a représenter des fractions et par la suite elles sont additionnées.
    Donc le premier bit représente 1/2, le deuxième 1/4, le troisième 1/8, ainsi de suite. Le float permet d'avoir plus de données de long mais n'est pas précis. Si l'on enregistre 0,5, le nombre sera exact par contre si l'on enregistre 0,2 il ne le sera pas car il n'y a pas de fraction exacte.

    Par contre le decimal permet d'enregistrer un nombre précis après la virgule mais permet d'en enregistrer moins long pour le même espace mémoire que le float.

    Pour conclure, utilisez donc le decimal pour enregistrer des données précise, officielles ou légales comme de l'argent.

  2. #2
    Membre actif
    Avatar de Eric.H
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 220
    Points : 286
    Points
    286
    Par défaut
    Pour plus de clarté SQL Server dispose également des types money et smallmoney avec 4 chiffres après la virgule

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/11/2011, 11h06
  2. Convertir des float en decimal
    Par olibara dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/08/2011, 16h48
  3. FLOAT et DECIMAL pas sous mysql
    Par lodan dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/03/2007, 14h21
  4. decimal ou float pour un champ monétaire ?
    Par brice01 dans le forum Requêtes
    Réponses: 4
    Dernier message: 09/03/2006, 06h47
  5. Réponses: 3
    Dernier message: 27/06/2005, 11h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo