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 :

requete insert avec decimal. Pb d'arrondi.


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 133
    Par défaut requete insert avec decimal. Pb d'arrondi.
    Bonjour, j'ai la requete insert:
    INSERT INTO testTable
    (prixUnit ,prixTotal)
    VALUES
    (12.7859 ,44.6989)
    GO

    PrixUnit type money
    prixTotal type decimal(5,3).

    le résultat dans la table est le suivant:
    12.7859 | 44.699

    pourquoi il m'a arrondi la valeur décimale 44.6989 vers 44.699 alors qu'on dit
    que le type décimal est précis (grande précision).
    pourquoi je n'ai pas: 44.698
    Merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut

    Dans ta déclaration :

    prixTotal type decimal(5,3)
    5 correspond à la précision et 3 au nombre de chiffres après la virgule.

    @ +

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 133
    Par défaut
    Citation Envoyé par JeanKalude Voir le message
    Salut

    Dans ta déclaration :



    5 correspond à la précision et 3 au nombre de chiffres après la virgule.

    @ +
    salut Jean,
    oui je sais mais pourquoi il m'a arrondi le chiffre au lieu d'un 8 il a mis un 9. c'est ça ma question.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 133
    Par défaut
    pour être précis sur ma question:
    j'ai inséré la valeur 44.6989 je devais avoir dans la base 44.698 décimal(5,3) . Pourquoi il a inséré 44.699. pourquoi avoir arrondi ?

  5. #5
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    C'est le comportement par défaut de SQL Server que d'arrondir lors de conversion avec perte de précision.

    Si vous voulez tronquer, vous pouvez le faire en utilisant ROUND:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT CAST(
    			ROUND(44.6989,2, 1) 
    			AS DECIMAL(5,3)
    		)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 133
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour,

    C'est le comportement par défaut de SQL Server que d'arrondir lors de conversion avec perte de précision.

    Si vous voulez tronquer, vous pouvez le faire en utilisant FLOOR:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT CAST(
    			FLOOR(44.6989*1000)/1000 
    			AS DECIMAL(5,3)
    		)
    Donc le type décimal n'est pas précis. imagine j’insère des valeurs pour les prix donc je vais perdre au niveau de la précision des prix.

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

Discussions similaires

  1. [SQL-Server] requete insert avec jointure
    Par diadie dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/07/2008, 12h45
  2. Requete insertion avec des select
    Par miketidy dans le forum Requêtes
    Réponses: 1
    Dernier message: 18/05/2008, 10h36
  3. Requete insert avec select
    Par nanette38 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 26/03/2008, 16h21
  4. [RegEx] Ecrire une requete INSERT avec des variables $_POST
    Par arnaudperfect dans le forum Langage
    Réponses: 10
    Dernier message: 13/06/2007, 15h12
  5. effectuer une requete insert avec 'values' ET 'select'
    Par delaio dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/08/2004, 19h05

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