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

GTK+ avec C & C++ Discussion :

Accepter 3 nombres après la virgule.


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 160
    Par défaut Accepter 3 nombres après la virgule.
    Bonjour à toutes et à tous,

    J affiche dans un gtk_label_new, un nombre décimal, mais ce nombre comporte trop de chiffres après la virgule et j aurais souhaité en avoir seulement trois après la virgule.

    J ai regardé dans la documentation et je n ai pas trouvé ou compris si il existait un gtk label qui me permettrait cela.

    Pourriez vous m indiquer un lien dans la documentation afin que je puisse essayer de résoudre mon problème.

    Merci par avance.

    Shazad

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Avec printf, tu peux passer des arguments de format pour dire que tu veux juste quelques chiffres après la virgule.
    gchar *nb = g_strdup_printf ("%.03f", float_number); ou qque chose comme ça. Je te laisse lire la doc de printf pour trouver la syntaxe exacte

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 160
    Par défaut
    Bonjour teuf13,

    Merci beaucoup pour ton exemple. J ai regardé la doc et je vais essayer de suite de le mettre en application.

    Shaz

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 160
    Par défaut
    Bonjour à tous,

    J ai essayer avec g_strdup_printf et voilà ce que j ai fait comme code :
    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
     
    void OnUpdate(GtkWidget *pEntry, gpointer data)
    {
        const gchar *sText;
        double diapason0;
        char strdiapason0[G_ASCII_DTOSTR_BUF_SIZE];
        MainWindow *pApp;
     
        pApp = (MainWindow*) data;
     
        sText = gtk_entry_get_text(GTK_ENTRY(pApp->pEntry));
        diapason0 = g_ascii_strtod(sText, NULL);
     
        diapason0 /= pow(2,1.0/12);
        g_strdup_printf(strdiapason0, "%.03f");
     
        g_ascii_dtostr (strdiapason0, sizeof (strdiapason0), diapason0);
     
        gtk_label_set_text(GTK_LABEL(pApp->pLabel), strdiapason0);
    }
    Cela ne fonctionne pas pour l instant, je continue de chercher mon erreur.
    Dans la documentation on peux lire ceci pour le second paramètre de g_strdup_printf :

    " the parameters to insert into the format string "

    C est cet phrase que je ne comprends pas très bien.

    Shazad

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Ca prend exactement les mêmes paramètres que printf, donc là c'est pas bon

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 160
    Par défaut
    Bonjour teuf13,

    Je crois comprendre ce que tu veux dire, mais sur la doc on trouve cet fonction écrit comme cela:

    gchar* g_strdup_printf (const gchar *format,...);

    C est pour cela que j ai mis strdiapason0 en premier et ensuite le "%.03f".

    J avoue que là je dois avoir une grosse lacune et certainement un problème de compréhension de la doc.

    Je continue de chercher et de me creuser la tête.

    Shazad.

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

Discussions similaires

  1. Ne laisser que 2 nombres aprés la virgule ou le point et supprimer les autres
    Par mystro7200 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 18/07/2008, 18h16
  2. Limité les nombres après la virgule
    Par touchkad dans le forum Langage
    Réponses: 4
    Dernier message: 17/09/2007, 10h37
  3. Limiter les nombres après la virgule
    Par lebigboss dans le forum Langage
    Réponses: 3
    Dernier message: 24/07/2007, 11h39
  4. Comment limiter le nombre apres la virgule?
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 25/10/2006, 22h12
  5. [Math]Récupérer le premier nombre après la virgule
    Par am.adnane dans le forum Général Java
    Réponses: 4
    Dernier message: 01/12/2005, 14h05

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