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

Requêtes MySQL Discussion :

MySQL arrondi mes prix et j'aime pas


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Par défaut MySQL arrondi mes prix et j'aime pas
    Bonjour,

    peut etre provoquerai-je le courou des habitués mais voila encore une question sur les float et autres gestions des décimaux...

    j'ai une colonne PRIX qui est un FLOAT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `commande` SET `prix` = 111111
    me donne bien un prix 111111 mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `commande` SET `prix` = 1111111
    me donne un prix 1111110 car il enregistre 1.11111 E+06



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `commande` SET `prix` = 1.11119
    me donne bien un prix 1.11119 mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `commande` SET `prix` = 1.111119
    me donne un prix 1.11112



    de meme,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `commande` SET `prix` = 11111.9
    me donne bien un prix 11111.9 mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `commande` SET `prix` = 111111.9
    me donne un prix 111112



    J'ai essayé de modifier le type de mon champ, d'abord en donnant des parametres à mon Float => FLOAT(10,2) ... mais c'est pareil.

    J'ai alors voulu abandonner la partie en me rabattant sur un DECIMAL mais c'est pareil !!! (DECIMAL tout court ou DECIMAL(10,2).

    Pouvez vous éclairer ma lanterne ??
    merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Bonjour,
    je n'ai pas réussi à reproduire votre problème pour decimal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    mysql> create table t
        -> (
        -> d decimal(10,2),
        -> f float(10,2)
        -> )
        -> ;
    Query OK, 0 rows affected (0.02 sec)
     
    mysql> insert into t values(11111.9, 11111.9), (111111.9, 111111.9);
    Query OK, 2 rows affected (0.00 sec)
    Records: 2  Duplicates: 0  Warnings: 0
     
    mysql> select * from t;
    +-----------+-----------+
    | d         | f         |
    +-----------+-----------+
    |  11111.90 |  11111.90 |
    | 111111.90 | 111111.90 |
    +-----------+-----------+
    2 rows in set (0.00 sec)
     
    mysql> update t set d = 11111111.9, f = 11111111.9;
    Query OK, 2 rows affected (0.00 sec)
    Rows matched: 2  Changed: 2  Warnings: 0
     
    mysql> select * from t;
    +-------------+-------------+
    | d           | f           |
    +-------------+-------------+
    | 11111111.90 | 11111112.00 |
    | 11111111.90 | 11111112.00 |
    +-------------+-------------+
    2 rows in set (0.00 sec)
     
    mysql> update t set d = 99999999.99, f = 99999999.99;
    Query OK, 2 rows affected (0.00 sec)
    Rows matched: 2  Changed: 2  Warnings: 0
     
    mysql> select * from t;
    +-------------+--------------+
    | d           | f            |
    +-------------+--------------+
    | 99999999.99 | 100000000.00 |
    | 99999999.99 | 100000000.00 |
    +-------------+--------------+
    2 rows in set (0.00 sec)
    Cordialement,
    DaRiaN.

  3. #3
    Membre émérite Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Par défaut
    merci de votre réponse.

    En effet, j'ai fait la meme chose que vous pour le meme resultat.
    J'ai du faire une boulette hier quand j'ai fait mon premier test sur des DECIMAL (maux).

    merci beaucoup.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/11/2008, 14h32
  2. probleme avec requete sql aime pas les strings
    Par lil_jam63 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/02/2004, 14h45

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