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

Langage SQL Discussion :

Decimal vs double


Sujet :

Langage SQL

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 464
    Points : 332
    Points
    332
    Par défaut Decimal vs double
    Bonjour,
    Tout d'abord je m'excuse si une discussion de ce type existe déjà mais je ne l'ai pas trouvée alors qu'il me semble que c'est une question que tout utilisateur de SQL a du se poser un jour.
    J'ai un champ qui est un nombre décimal à deux chiffres après la virgule et 3 avant maximum (compris donc entre -999,99 et 999,99). Ce champ est récupéré par un programme java qui va faire des calculs dessus.
    Vaut-il mieux utiliser un double ou un decimal(3,2) pour ce champ ?
    J'ai bien vu dans un cours que si on faisait des calculs sur un champ numérique le type double était préférable au type decimal. Mais je n'ai pas réussi à savoir si les calculs dont il était question étaient liés à une requète SQL ou fait en dehors de la base.
    Naturellement je dirai que les calculs étant fait dans un programme étranger à la base, le type decimal est meilleur car il assure d'une manière optimisée les contraintes liées au champ et que lors du retour de requête dans le programme java il y aura un transtypage en Double.
    Qu'en pensez-vous ?
    C'est en respectant les autres que l'on se fait respecter.

  2. #2
    Inactif  

    Homme Profil pro
    Freelance EURL / Business Intelligence ETL
    Inscrit en
    Avril 2005
    Messages
    5 879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance EURL / Business Intelligence ETL
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2005
    Messages : 5 879
    Points : 26 147
    Points
    26 147
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    Pour commencer une petite précision : quel est votre SGBD ?
    D'autre part, dans votre choix, c'est un decimal(5,2) et non un decimal(3,2), c'est-à-dire un nombre stocké sur 5 chiffres, avec deux chiffres après la virgule (d'où votre 999,99).

    Quant à votre question : je dirais tout dépend du type des opérations que vous voudriez faire. Par exemple si votre nombre est un montant, et qu'il est multiplié par un taux, vous aurez besoin de beaucoup plus de chiffres après la virgule, quitte à arrondir lors d'un affichage.

    Il faudrait que vous nous indiquez quel type d'opération vous voudriez faire.
    - So.... what exactly is preventing us from doing this?
    - Geometry.
    - Just ignore it !!
    ****
    "The longer he lived, the more he realized that nothing was simple and little was true" A clash of Kings, George R. R. Martin.
    ***
    Quand arrivera l'apocalypse, il restera deux types d'entreprise : les pompes funèbres et les cabinets d'audit. - zecreator, 21/05/2019

  3. #3
    Membre actif
    Inscrit en
    Janvier 2012
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 145
    Points : 226
    Points
    226
    Par défaut
    Je ne connais bien le type double (sur quel SGBD d'ailleurs?). Mais si vous avez des manipulations à faire sur cette colonne, manipulations comptables par exemple, il faut utiliser le type décimal. Le type réel est une approximation, et il est facile d'arriver à la fin de l'année à des écarts qui ne s'expliquent que par le choix du mauvais type de données.

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 464
    Points : 332
    Points
    332
    Par défaut
    Au risque de paraître iconoclaste je n'utilise pas du tout ma base de données pour des raisons comptables.
    En effet le type est bien decimal(5,2).
    Les calculs que je fais sont des calculs scientifiques (lignes trigonométriques par exemple). Mais ces calculs se font une fois que l'on a récupéré les données de la base.
    Le SGBD utilisé est H2.
    Double est un type numérique réel de grande précision.
    C'est en respectant les autres que l'on se fait respecter.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/05/2014, 11h36
  2. Decimal, float, double en C# avec SQL Server
    Par 0nn2belle dans le forum C#
    Réponses: 4
    Dernier message: 04/05/2010, 09h34
  3. [XSD] : decimal ou double
    Par 3DArchi dans le forum Valider
    Réponses: 4
    Dernier message: 16/10/2009, 13h23
  4. utiliser un Decimal format avec un type double
    Par Mobistar dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 07/03/2008, 13h47
  5. coversion type decimal en reel double
    Par zebi42 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 29/06/2007, 14h43

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