[C++] nombre de décimaux dans un double qu'on écrit dans un fichier

nombre de décimaux dans un double qu'on écrit dans un fichier [C++] - C++ - Programmation

Marsh Posté le 08-04-2004 à 14:58:59    

Bonjour,
Je souhaite écrire dans un fichier texte des données de type double.  
Exemple qui va illustrer mon problème :
fstream fichier ("file.txt", ...);
if (fichier.is_open())
{
  double x = 0.85236987412;
  fichier << x << endl;
  fichier.close();
}
 
Quand j'ouvre le fichier en question, je me retrouve avec 0.85237 !
Et mon calcul ultérieur s'en trouve faussé quand je récupère cette valeur.
 
Alors j'ai essayé de convertir ce double en chaine de caractères d'une taille suffisante. Je me retrouve bien avec le bon nombre de chiffres significatifs dans mon fichier, sauf que à l'exécution, il n'arrive pas à détruire mon objet "fichier" et une exception est levée... alors que je n'ai pas ce problème quand j'écris "x" avec un type double...
 
Quelqu'un a-t-il une idée pour résoudre le 1er et/ou le 2è problème ?
Merci d'avance.

Reply

Marsh Posté le 08-04-2004 à 14:58:59   

Reply

Marsh Posté le 08-04-2004 à 15:00:42    

je crois qu'il existe des modificateurs à passer au iostream pour fixer la precision.
 
cf http://cplusplus.com/ref/iostream/ [...] rltlt.html
 
essaye cout << fixed << 3.24557842 par exemple


Message édité par Joel F le 08-04-2004 à 15:01:52
Reply

Marsh Posté le 08-04-2004 à 15:14:47    

oui, il y a bien une méthode dans "fstream" qui permet de modifier la précision :
fichier.precision(15);
 
Et ca marche nickel ! Merci bien ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed