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

C++ Discussion :

Limiter la taille d'un nombre


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    F�vrier 2011
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2011
    Messages : 61
    Par d�faut Limiter la taille d'un nombre
    Bonjour tout le monde,
    je suis entrain de chercher comment sp�cifier la taille d'un float ( le nombre de chiffres significatifs + le nombre de chiffres apr�s la virgule).
    je veux �crire ces chiffres dans un fichier texte en limitant la taille de chaque nombre.
    j'ai cherch� sur les forums mais aucun r�sultat.

    Quelqu'un peut m'aider????

  2. #2
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    F�vrier 2009
    Messages
    762
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 762
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    fprintf(fichier, "%2.3f", mon_float);
    2 avant et 3 apr�s la virgule

  3. #3
    Inactif  


    Homme Profil pro
    Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Inscrit en
    D�cembre 2011
    Messages
    9 026
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 9 026
    Par d�faut
    Citation Envoy� par Trademark Voir le message
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    fprintf(fichier, "%2.3f", mon_float);
    2 avant et 3 apr�s la virgule
    Il n'y a pas un moyen de faire ceci en C++ avec les flux plut�t que d'utiliser une m�thode plut�t orient� C ?

    Je pensais faire comme ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    float = monFloat;
    int arrondi = monFloat*1000; // 10^k o� k est le nombre de chiffre apr�s la virgule
    int arrondi %= 10000000; //10^k o� k est le nombre de chiffre que tu veux au total.
    monFloat = arrondi(float)/1000; //et voil�, le tour est jou�.

  4. #4
    R�dacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supa�ro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Ing Supa�ro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par d�faut
    Faut voir avec les manipulateurs de flux : http://fr.wikibooks.org/wiki/Program...etw.28width.29

    Mais pour le coup, c'est vite assez lourd. Il y a boost::format pour all�ger.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une tr�s bonne doc sur le C++ (en) Why linux is better (fr)

  5. #5
    Membre actif
    Inscrit en
    F�vrier 2011
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2011
    Messages : 61
    Par d�faut
    j'ai essay� ce code mais j'arrive pas � r�soudre mon probl�me.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    float = monFloat;
    int arrondi = monFloat*1000; // 10^k où k est le nombre de chiffre après la virgule
    int arrondi %= 10000000; //10^k où k est le nombre de chiffre que tu veux au total.
    monFloat = arrondi(float)/1000; //et voilà, le tour est joué.
    Mon but est d'arriver � convertir une ligne de texte en un tableau de r�els.
    Voici un exemple d'une ligne de fichier texte:
    102.2360 0.0650 6.09 52.0 0.087 1.0 84.098
    ces nombres sont s�par�s avec un espace.
    Voila la fonction que j'ai �cris :
    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
    int transfert(string ch ,float* tab)
    {
    int n=0;
    int p=strchr((const char*)ch.c_str(),' ')- ch.c_str();
    while(p =!0)
    {
    string ch1=ch.substr(0,p-1);
    tab[n]=atof(ch1.c_str());
    n=n+1 ;
    ch=ch.substr(0,p);
    p=strchr((const char*)ch.c_str(),' ')- ch.c_str();
    }
    tab[n+1]=atof(ch.c_str());
    return n;
    }
    Quelqu'un peut me corriger ce code !
    Merci d'avance

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Inscrit en
    D�cembre 2011
    Messages
    9 026
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 9 026
    Par d�faut
    Pense d�j� � indenter ton code.

    Ensuite, pourquoi utiliser un string pour ensuite faire maString.c_str() � presque chaque instruction?

    Tu te complique inutilement la vie :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    std::stringstream flux(maString); // #include <sstream>
    float monFloat;
    while(flux >> monFloat) //s'arrête dès qu'il ne peut plus lire de float
    {
                //traitement du float.
    }
    //fin de la lecture
    Tu utilises aussi un tableau de float, o� fais-tu l'allocation avec new ?
    S'il est d�j� allou�, o� passes-tu la taille physique du tableau ?

    Pourquoi ne pas utiliser un vecteur :
    http://www.cplusplus.com/reference/stl/vector/
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    std::vector<float> monVecteur;
    monVecteur.push_back(monFloat);//place mon float à la fin du tableau
    /!\ Si tu connais la taille � l'avance, bien utiliser la m�thode reserve(taille);

  7. #7
    Membre �prouv�
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par d�faut
    Citation Envoy� par Neckara Voir le message
    Il n'y a pas un moyen de faire ceci en C++ avec les flux plut�t que d'utiliser une m�thode plut�t orient� C ?
    Jette un �il sur ce fil, et bosse avec les ostringstream.

  8. #8
    Inactif  


    Homme Profil pro
    Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Inscrit en
    D�cembre 2011
    Messages
    9 026
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 9 026
    Par d�faut
    Citation Envoy� par oodini Voir le message
    Jette un �il sur ce fil, et bosse avec les ostringstream.
    Davidbrcz a d�j� donn� un lien sur les op�rateurs de flux.

Discussions similaires

  1. limiter la taille d'un texte en nombre ligne
    Par pimpmyride dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 7
    Dernier message: 05/06/2007, 15h33
  2. Limiter la taille d'une ou plusieurs bases de donn�es
    Par Thierry8 dans le forum Administration
    R�ponses: 7
    Dernier message: 12/03/2006, 23h51
  3. Feuille de style, faut-il limiter leurs tailles?
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 17
    Dernier message: 30/01/2006, 07h05
  4. [ Eclipse2.1 ][ Plugin ] limiter la taille des boutons
    Par whilecoyote dans le forum Eclipse Java
    R�ponses: 1
    Dernier message: 03/11/2005, 16h08
  5. [Tomcat][Jsp][Upload]Limiter la taille d'un upload...
    Par Titom dans le forum Servlets/JSP
    R�ponses: 4
    Dernier message: 23/05/2005, 15h33

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