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 :

Conversion d'un string en double


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    147
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 147
    Par d�faut Conversion d'un string en double
    Bonjour ,

    Pouvez-vous me dire pourquoi il y a une perte d'info lorsque je convertis un STRING en DOUBLE ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    		cout<< CDP1_B3[5][1] << endl ;			
    		cout<< atof(CDP1_B3[5][1].c_str())<< endl ;
    1.8266818
    1.82668

    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
    Salut,
    Parce que la m�moire d'un ordinateur est limit�e et qu'il est impossible de repr�senter tous les nombres � virgule possibles, soit une infinit�, avec un double.
    https://en.wikipedia.org/wiki/Floati...n_and_rounding
    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 confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    147
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 147
    Par d�faut
    La m�thode utilis�e n'est peut-�tre pas optimis�e. Une id�e pour conserver de la pr�cision ?

  4. #4
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement mat�riel �lectronique
    Inscrit en
    D�cembre 2015
    Messages
    1 599
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement mat�riel �lectronique
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : D�cembre 2015
    Messages : 1 599
    Par d�faut
    Bonjour,
    ici c'est surtout parce que les valeurs dans les flux utilisent 6 chiffres. Le double a 16 chiffres de pr�cision.
    Mais attention comme le dit Bousk un nombre flottant n'est quasiment jamais �gal � une repr�sentation d�cimale.
    Exemple :
    0.2 * 5 - 1 n'est pas nul!

    Essaie les lignes pour : auto s = "1.826818"s;
    std::cout << std::setprecision(15) << std::atof(st.c_str()) << std::endl;
    std::cout << std::setprecision(20) << std::atof(st.c_str()) << std::endl;

  5. #5
    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
    La seule solution pour conserver de la pr�cision c'est de ne pas utiliser des doubles mais des entiers et une virgule fixe.
    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.

  6. #6
    Membre actif Avatar de Abacar94
    Homme Profil pro
    L2 Math-informatique
    Inscrit en
    Novembre 2015
    Messages
    103
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activit� : L2 Math-informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 103
    Par d�faut
    Avec le atof sa ne va pas marcher.....par ce que le double a une pr�cision de 6 chiffre apr�s la virgule...donc c'est a toi de faire ton propre type qui va rependre a tes exigence

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    147
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 147
    Par d�faut
    Avez-vous des doc me permettant de me former � cet exercice ?

    Merci.

  8. #8
    Membre �m�rite
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    307
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 307
    Par d�faut
    Citation Envoy� par Bousk Voir le message
    La seule solution pour conserver de la pr�cision c'est de ne pas utiliser des doubles mais des entiers et une virgule fixe.
    Pour sauver un double dans une chaine, la solution qu'il m'arrive d'utiliser est de copier les 8 octets du double (64 bits) dans un long long (64 bits) et de sauver le long long. Pour la relecture c'est l'inverse, l'avantage de la m�thode c'est d'avoir le m�me double (avant et apr�s). Typiquement cela me sert � reproduire un probl�me...

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

Discussions similaires

  1. [VB.NET] Conversion de String en Double
    Par JB-Tech dans le forum Windows Forms
    R�ponses: 9
    Dernier message: 26/02/2018, 07h32
  2. Conversion d'une string en double
    Par DotNET74 dans le forum Windows Phone
    R�ponses: 2
    Dernier message: 16/09/2012, 19h24
  3. Conversion d'un String en Double dans une JSP
    Par demcoul dans le forum Servlets/JSP
    R�ponses: 4
    Dernier message: 18/04/2012, 18h00
  4. conversion string en double
    Par kakrocq dans le forum C++/CLI
    R�ponses: 4
    Dernier message: 11/04/2007, 13h54
  5. conversion string en double
    Par zmatz dans le forum SL & STL
    R�ponses: 2
    Dernier message: 14/10/2005, 22h46

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