Comment écrire en notation scientifique ?

Comment écrire en notation scientifique ? - C++ - Programmation

Marsh Posté le 04-08-2005 à 18:32:45    

Bonjour, je sais que les fonctions comme printf permettent de voir un nombre en notation scientifique à l'écran, mais moi je voudrais le stocker dans une variable char*
 
Comment construit-on une notation scientifique ? Quand on à des nombre avec une suite de zéro cela va bien, mais si on éa un nombre entiers comme: 74874543215
 
Comment faire ?
 
Merci.  :jap:

Reply

Marsh Posté le 04-08-2005 à 18:32:45   

Reply

Marsh Posté le 04-08-2005 à 18:50:22    

sprintf ?

Reply

Marsh Posté le 04-08-2005 à 19:32:15    

NullDragon a écrit :

Bonjour, je sais que les fonctions comme printf permettent de voir un nombre en notation scientifique à l'écran, mais moi je voudrais le stocker dans une variable char*
 
Comment construit-on une notation scientifique ? Quand on à des nombre avec une suite de zéro cela va bien, mais si on éa un nombre entiers comme: 74874543215
 
Comment faire ?
 
Merci.  :jap:


je sais pas si cela va te convenir mais pour ecrire ton nombre en notation scientifique, tu recuperes tous les nombres apres le 7, tu comptes combien y'en a (N) et tu les stockes dans ton char* apres le 7 et une virgule puis tu mets *10^N
ex
74874543215=7.4874543215*10^10


Message édité par sankukai8 le 04-08-2005 à 19:32:53
Reply

Marsh Posté le 04-08-2005 à 19:38:42    

snprintf(buf, sizeof buf, "%e", 74874543215.0);

Reply

Marsh Posté le 04-08-2005 à 20:08:30    

ios::scientific en C++  :o

Code :
  1. double d = 75.8901;
  2. cout.precision(2);
  3. cout.setf(ios::scientific, ios::floatfield);
  4. cout << d;    // écrit 7.59e+01


Message édité par blastman le 04-08-2005 à 20:15:49

---------------
http://www.blastmanu.info
Reply

Marsh Posté le 04-08-2005 à 20:20:08    

ah mais oui bordel, on parle de C++. Désolé :o
 
moi je vois char*, je cherche pas à comprendre, ça ne peut être que du C. Ou bien un psychopathe.

Reply

Marsh Posté le 04-08-2005 à 21:46:16    

blastman a écrit :

ios::scientific en C++  :o

Code :
  1. double d = 75.8901;
  2. cout.precision(2);
  3. cout.setf(ios::scientific, ios::floatfield);
  4. cout << d;    // écrit 7.59e+01



 
Merci :)
 
Mais que veux dire precision(2) ?
cout.setf c'est pour mettre des flags à cout pour que ça affiche en notation scientifique ?
 
2 petites questions: comment mettre cette notation dans un fichier txt et est-ce que la notation scientifique est juste ou si on perd des chiffres ? si je refais l'inverse est-ce que j'ai mon nombre original ?

Reply

Marsh Posté le 05-08-2005 à 02:58:31    

NullDragon a écrit :


Mais que veux dire precision(2) ?


Ca indique combien de décimales sont écrites au maximum dans les nombres à virgule flottante, ici 2
 

NullDragon a écrit :


cout.setf c'est pour mettre des flags à cout pour que ça affiche en notation scientifique ?


En fait la méthode setf sert à lire les champs de formats, le premier argument indique la nouvelle valeur des bits à modifier, le deuxième les bits à modifier.


---------------
http://www.blastmanu.info
Reply

Marsh Posté le 10-07-2009 à 09:49:12    

Si on veut écrire dans un fichier, on remplace cout par nomfichier dans le code de blastman, mais celui-ci force tous les chiffres entrés dans le fichier à être en écriture scientifique, et avec une précision de 2 décimales.
Pour choisir la précision et le type d'écriture de chaque élément :  
 
double nombre=0,00546
nomfichier<<scientific<<setprecision(2)<<nombre<<endl; //Affiche en écriture scientifique
nomfichier<<fixed<<setprecision(7)<<nombre<<endl; //Affiche en écriture décimale
 
Tout ceci pour compléter les messages précédents...

Reply

Marsh Posté le 10-07-2009 à 13:33:53    

merci pour ce code faux et cette prévision tout à fait inutile, surtout 4 ans après.

Reply

Sujets relatifs:

Leave a Replay

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