Libreria ios C ++ - Funzione scientifica

Descrizione

Viene utilizzato per impostare il flag del formato floatfield per il flusso str su scientifico. Quando floatfield è impostato su scientifico, i valori in virgola mobile vengono scritti utilizzando la notazione scientifica: il valore è rappresentato sempre con una sola cifra prima del punto decimale, seguito dal punto decimale e tante cifre decimali quante sono il campo di precisione (precisione). Infine, questa notazione include sempre una parte esponenziale costituita dalla lettera e seguita da un segno opzionale e tre cifre esponenziali.

C ++ 98

Il flag del formato floatfield è sia selettivo che toggle: può assumere uno o più dei seguenti valori come mostrato di seguito:

valore della bandiera effetto quando impostato
fisso scrivere valori a virgola mobile in notazione a virgola fissa
scientifico scrivere valori in virgola mobile in notazione scientifica.
(nessuna) scrivere valori a virgola mobile nella notazione a virgola mobile predefinita.

C ++ 11

Il flag del formato floatfield è sia un flag selettivo che un flag di attivazione / disattivazione: può assumere uno dei seguenti valori o nessuno come mostrato di seguito:

valore della bandiera effetto quando impostato
fisso scrivere valori a virgola mobile in notazione a virgola fissa.
scientifico scrivere valori in virgola mobile in notazione scientifica.
hexfloat

scrivere valori in virgola mobile in formato esadecimale.

Il valore di questo è lo stesso di (fixed|scientific)

defaultfloat scrivere valori a virgola mobile nella notazione a virgola mobile predefinita. Questo è il valore predefinito (uguale a nessuno, prima di qualsiasi altrofloatfield bit è impostato).

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione std :: scientific.

ios_base& scientific (ios_base& str);

Parametri

str - Oggetto flusso il cui flag di formato è interessato.

Valore di ritorno

Restituisce Argument str.

Eccezioni

Basic guarantee - se viene generata un'eccezione, str è in uno stato valido.

Gare di dati

Modifica str. L'accesso simultaneo allo stesso oggetto flusso può causare gare di dati.

Esempio

Nell'esempio seguente viene spiegato la funzione 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;
}

Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:

default:
3.1416
2006
1e-010

fixed:
3.14159
2006.00000
0.00000

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