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

SQL Procédural MySQL Discussion :

type pour prix


Sujet :

SQL Procédural MySQL

  1. #1
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut type pour prix
    Bonjour,

    Quel est le meilleur type pour un champ qui contient des prix (qui se rapproche le + au type monétaire d'office) ?

    Merci

  2. #2
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877

  3. #3
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut
    FLOAT ou DOUBLE, le chiffre 650,00 ne rentre pas ds la table, il n'est qu'enregistrer que 650.

  4. #4
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    impossible.

    As tu essayé ?
    Un nombre à virgule flottante, en précision double. Les valeurs possibles vont de -1.7976931348623157E+308 à -2.2250738585072014E-308, 0, et 2.2250738585072014E-308 à 1.7976931348623157E+308. Si UNSIGNED est spécifié, les valeurs négatives sont interdites
    J'ai essayé et ça rentre

  5. #5
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut
    j'ai essayer DECIMAL, ça marche mieux

  6. #6
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    L'intervale de validité du type DECIMAL est le même que DOUBLE, mais le vrai intervalle de validité de DECIMAL peut être restreint par le choix de la valeur de M et D. Si UNSIGNED est spécifié, les valeurs négatives sont interdites.
    Ce qui confirme ce que je disais.

    Mais decimal conviendra aussi

  7. #7
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut
    j'ai retester le DOUBLE et ça marche, comme pour DECIMAL.
    J'ai du faire une erreur tout à l'heure.

    Bref, sinon, le seul petit hic c'est que dans la table faut mettre des "." à la place des ",".

  8. #8
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    justement quand j'avai tester double, j'ai testé avec le point et la virgule mais en saisissant au clavier et ça a marché. mais c'etait au clavier donc c'est pas signifiant.

  9. #9
    Membre éclairé Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Par défaut
    je sens que je vais choisir DECIMAL avec UNSIGNED et avec un traitement pour modifier le ".".

    Merci bcp pop_up

  10. #10
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 509
    Par défaut
    http://dev.mysql.com/doc/refman/5.0/...ing-types.html
    Mysql conseille DECIMAL parce que celui ne sera pas formaté donc pas d'ajustement.

  11. #11
    Membre chevronné
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Par défaut
    Citation Envoyé par MANU_2 Voir le message
    Quel est le meilleur type pour un champ qui contient des prix ?
    Pour écrire des prix, je suppose que tu as toujours que 2 chiffres après la virgule ?
    Dans ce cas pourquoi ne pas stocker tout simplement les prix dans des nombres entiers.
    Ensuite, savoir s'il faut mettre des points ou des virgules, ce n'est qu'une question d'affichage. Les données seront enregistrées dans la base de données sous forme de nombre entiers.

    Je déconseille d'utiliser des nombres flottants pour des prix car les flottants ont une précision relative, alors que les entiers ont une précision absolue.
    Pour faire court, avec des flotttants, tu auras beaucoup trop de précision avec les petites valeurs, et lorsque tu auras de très grandes valeurs, tu manqueras de précision.
    En effet, les flottants ne sont pas conçus pour enregistrer des valeurs exactes, mais plutôt pour indiquer des ordres de grandeur.

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

Discussions similaires

  1. [MySQL] MySQL, quel type de champ choisir pour prix
    Par okoweb dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/08/2010, 00h12
  2. type pour un prix
    Par cyrano_de_bergerac dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/11/2007, 16h10
  3. changement de type pour un champ dans une table
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 23/02/2004, 15h26
  4. Type pour données de type email avec @
    Par jeff37 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/01/2004, 14h50

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