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

Bases de données Delphi Discussion :

Comment je peut contrôler le nombre de chiffre après virgule


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 55
    Points
    55
    Par défaut Comment je peut contrôler le nombre de chiffre après virgule
    Bonjour;

    j'affiche une table qui a des champs de type : Real avec 2 chiffre après la virgule.
    mon problème c'est quand j'affiche cette table dans un DBGrid il me donne plein de chiffre après la virgule

    est ce que vous avez une idée?

    Merci

  2. #2
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 503
    Points : 2 773
    Points
    2 773
    Billets dans le blog
    10
    Par défaut
    Quel est ton format de table ?
    Le problème le plus courant est lié au fait que les formats décimaux sont stockés dans des réel et que comme un ordinateur travaille en base 2 il ne sait pas stocker dans ce format le nombre 0,1.
    Donc il arrondi à 14 décimales près ou plus.
    Donc tu peux jouer sur l'affichage uniquement. Donc tu peux par exemple afficher un champ calculé à la place de ton champ si ta table est en lecture seule.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 55
    Points
    55
    Par défaut
    j'ai une table faite en SQL server2005

    mais je n'ai pas compris comment je peut jouer sur l'affichage??

  4. #4
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Salut,

    Essaye en définissant ton champs de type float, chez moi je n'ai aucun soucis d'affichage avec ce format.

    A+.

  5. #5
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 503
    Points : 2 773
    Points
    2 773
    Billets dans le blog
    10
    Par défaut
    Pour l'histoire des nombres réels :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DECLARE @v1 real
    SELECT @v1 = 1
    SELECT @V1 = @V1 / 8
    SELECT ROUND(@V1,3)
    Tu peux changer la valeur 8 par un nombre compris entre 1 et 9 pour voir le problème.

    Pour l'affichage tu peux soit créer une vue sur ta table en SQL, pour convertir l'affichage de ton champ du style.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONVERT (decimal (5, 2), @V1)
    Pour la méthode que je t'ai indiqué plus haut je vais essayer de te retrouver un bout de code.

  6. #6
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Points : 383
    Points
    383
    Par défaut
    bonjour

    il est possible par code d'initialiser les champs numériques:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      with DBGrid1 do begin
        for i := 0 to fieldcount - 1 do begin
          if Columns[i].FieldName = 'Truc' then
            TNumericField(Fields[i]).DisplayFormat := '#0';
          if Columns[i].FieldName = 'Machin' then
            TNumericField(Fields[i]).DisplayFormat := '#0.00';
          ......
    à plus

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 55
    Points
    55
    Par défaut
    Merci à tous

    ET SURTOUT A BANBAN

  8. #8
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Points : 383
    Points
    383
    Par défaut
    bonjour

    le code que j'ai donné est interressant lorsque l'utilisateur déplace les colonnes
    (à déclancher dans le OncolumnMoved du DbGrid), il permet de conserver les formats en fonction des champs et non pas de la position des colonnes.

    à plus

  9. #9
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 35
    Points : 29
    Points
    29
    Par défaut Le Format des Réels dans un DBgrid
    Bonjour;
    Pour un DBgrid la méthode la plus simple est la suivante mais a condition que ton champ soit un Real;
    tu click 2 fois sur le composant Ttable relié a ton DBgrid ,une boite de dialogue s'ouvre tu sélectionne ton champ Real en suite à ta gauche dans l'inspecteur d'Objet tu prends la porietés DisplayeFormat: tu donne le format nécessaire.
    exp: 22 000 000,00 doit avoir le format #,##0.00

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

Discussions similaires

  1. [AC-2007] nombre de chiffres après virgule erroné avec chiffre 0
    Par ulovb dans le forum Access
    Réponses: 2
    Dernier message: 18/02/2015, 09h41
  2. Nombres de chiffres après virgule
    Par Imène_23 dans le forum MATLAB
    Réponses: 4
    Dernier message: 18/03/2014, 13h02
  3. Réponses: 9
    Dernier message: 30/07/2007, 12h16
  4. Comment fixer le nombre de chiffre après la virgule d'un flottant
    Par moon93 dans le forum Général Python
    Réponses: 1
    Dernier message: 15/06/2007, 16h49
  5. Comment imposer un nombre de chiffre après la virgule
    Par Yagami_Raito dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2007, 10h24

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