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 :

Convertir une string en float sans perte de pr�cision


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    83
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 83
    Par d�faut Convertir une string en float sans perte de pr�cision
    Bonjour,

    Je souhaiterais pourvoir convertir un std::string en float sans perdre de pr�cision et de mani�re g�n�rique mais je n'arrive pas � trouver de solution. Avec stringstream si ma string vaut 500.5547, quand je fais stringstream >> float, mon float vaut 500.55 car il arrondie....
    Si vous auriez une id�e je suis preneur
    merci

  2. #2
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Bonjour,

    tu dois avoir des options de setPrecision.
    Mais sache que dans tous les cas tu auras une perte d'informations, tout simplement parce que certaines valeurs flottantes sont justes impossibles � repr�senter sur le mod�le binaire de la machine.
    Un double devrait minimiser cette erreur, sans la supprimer.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Citation Envoy� par lirycs78 Voir le message
    mon float vaut 500.55 car il arrondie....i
    Comment as-tu contr�l� la valeur de ton float ? Si tu l'as affich� dans std::cout, c'est plut�t lui qui a arrondi.

    Un float r�cup�r� de la cha�ne 500.5547 vaudra en fait 500.554688 (tu peux v�rifier avec un d�buggueur) � cause de l'approximation flottante, qui provient de la repr�sentation en m�moire des nombres flottants.

    Plus d'infos sur cet excellent lien et dans ce sujet ainsi que celui-ci.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    83
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 83
    Par d�faut
    Merci de vos r�ponse, effectivement le probl�me viens de std::cout

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [C#] Comment convertir une String en float ?
    Par DestinyWar45 dans le forum C#
    R�ponses: 7
    Dernier message: 08/10/2010, 04h19
  2. R�ponses: 3
    Dernier message: 06/06/2008, 14h35
  3. Comment convertir une string en boolean ?
    Par olivier12345600 dans le forum Langage
    R�ponses: 6
    Dernier message: 25/06/2005, 15h54
  4. Convertir une string en image
    Par worldchampion57 dans le forum AWT/Swing
    R�ponses: 2
    Dernier message: 16/05/2005, 09h55
  5. [Firebird] Convertir une String en date
    Par laffreuxthomas dans le forum SQL
    R�ponses: 1
    Dernier message: 04/05/2005, 19h42

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