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

MFC Discussion :

[MFC] Nombre de chiffres après la virgule


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut [MFC] Nombre de chiffres après la virgule
    Bonjour à tous,

    j'affiche dans une boîte de dialogue une pression et une température. J'obtiens ces deux informations en type double.

    Je mène la conversion suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    P.Format("%lf",m_P);
    T.Format("%lf",m_T);
    (où P et T sont des CString)

    Je souhaiterais afficher seulement un certain nombre de chiffres après la virgule (qui correspondent notamment aux chiffres significatifs du capteur).
    J'ai bien une idée à mettre en oeuvre, ce serait de traiter le tout en CString, par exemple faire un CString::Find du point, et de faire un CString::Left pour ne récupérer que les chiffres significatifs que je souhaite afficher.
    Mais je me demandais s'il n'y avait pas plus rapide, à savoir notamment une conversion de double en CString où passerait directement en paramètres le nombre de chiffres significatifs ?
    Voilà, merci pour votre aide.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    pourqui tu n''utilises pas les formats d'affichages :
    "%5.3f" longueur totale 5 dont 3 decimles ?
    cherche printf format specifications dans l'aide .

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    Salut,

    ah oui c'est vrai je peux utiliser cela aussi, merci. J'étais plutôt parti sur un traitement de chaîne de caractères avec pour exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    m_T = 273.4718945;
    m_P = 0.1458642;
    en faisant (après la conversion en CString):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	P = P.Left(3);
    	T = T.Left(6);
    Mais le gros inconvénient, c'est que ca me prenait toujours le même nombre de chiffres, et du coup pas forcément les chiffres significatifs ! Rem: j'aurais pu aussi faire un Find du point et là décider de combien de chiffres après la virgule je gardais.
    Bref ta solution est la plus adaptée, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	P.Format("%2.1f",m_P);
    	T.Format("%5.3f",m_T);
    et à l'affichage:
    T = 273,472K
    P = 0,1MPa
    Merci.

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    avec ta methode l'arrondi sur la derniere decimale n'est pas gere.
    alors que %10.3f pour 273.4718 donnera 273.472


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

Discussions similaires

  1. [VB.Net] Determiner le nombre de chiffre apres la virgule
    Par badnane2 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 30/05/2019, 10h00
  2. [C#] Limiter le nombre de chiffre apres la virgule ?
    Par MaxiMax dans le forum ASP.NET
    Réponses: 3
    Dernier message: 01/08/2011, 14h20
  3. Réponses: 7
    Dernier message: 01/02/2007, 19h32
  4. Limiter nombre de chiffre apres la virgule
    Par MaxiMax dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/08/2005, 12h02
  5. arrondir un nombre à 2 chiffres après la virgule
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/02/2005, 08h36

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