Bibliothèque ios C ++ - Function Scientific

La description

Il est utilisé pour définir l'indicateur de format floatfield pour le flux str sur scientifique. Lorsque floatfield est défini sur scientifique, les valeurs à virgule flottante sont écrites en utilisant la notation scientifique: la valeur est toujours représentée avec un seul chiffre avant le point décimal, suivi du point décimal et d'autant de chiffres décimaux que le champ de précision (précision). Enfin, cette notation comprend toujours une partie exponentielle constituée de la lettre e suivie d'un signe optionnel et de trois chiffres exponentiels.

C ++ 98

L'indicateur de format floatfield est à la fois un indicateur sélectif et un indicateur à bascule: il peut prendre une ou plusieurs des valeurs suivantes comme indiqué ci-dessous -

valeur du drapeau effet une fois réglé
fixé écrire des valeurs à virgule flottante en notation à virgule fixe
scientifique écrire des valeurs à virgule flottante en notation scientifique.
(aucun) écrire des valeurs à virgule flottante dans la notation à virgule flottante par défaut.

C ++ 11

L'indicateur de format floatfield est à la fois un indicateur sélectif et un indicateur à bascule: il peut prendre l'une des valeurs suivantes, ou aucune comme indiqué ci-dessous -

valeur du drapeau effet une fois réglé
fixé écrire des valeurs à virgule flottante en notation à virgule fixe.
scientifique écrire des valeurs à virgule flottante en notation scientifique.
hexfloat

écrire des valeurs à virgule flottante au format hexadécimal.

La valeur de ceci est la même que (fixed|scientific)

defaultfloat écrire des valeurs à virgule flottante dans la notation à virgule flottante par défaut. Il s'agit de la valeur par défaut (identique à aucune, avant toute autrefloatfield bit est défini).

Déclaration

Voici la déclaration de la fonction std :: Scientific.

ios_base& scientific (ios_base& str);

Paramètres

str - Objet Stream dont l'indicateur de format est affecté.

Valeur de retour

Il renvoie l'argument str.

Des exceptions

Basic guarantee - si une exception est levée, str est dans un état valide.

Courses de données

Il modifie str. L'accès simultané au même objet de flux peut provoquer des courses de données.

Exemple

L'exemple ci-dessous explique la fonction std :: Scientific.

#include <iostream>

int main () {
   double a = 3.1415926534;
   double b = 2006.0;
   double c = 1.0e-10;

   std::cout.precision(5);

   std::cout << "default:\n";
   std::cout << a << '\n' << b << '\n' << c << '\n';

   std::cout << '\n';

   std::cout << "fixed:\n" << std::fixed;
   std::cout << a << '\n' << b << '\n' << c << '\n';

   std::cout << '\n';

   std::cout << "scientific:\n" << std::scientific;
   std::cout << a << '\n' << b << '\n' << c << '\n';
   return 0;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

default:
3.1416
2006
1e-010

fixed:
3.14159
2006.00000
0.00000

scientific:
3.14159e+000
2.00600e+003
1.00000e-010