Precisione impostata del manipolatore C++

Manipolatore C++ setprecision La funzione viene utilizzata per controllare il numero di cifre della visualizzazione del flusso di output di un valore a virgola mobile.

Questo manipolatore è dichiarato nel file header.

Sintassi

 /*unspecified*/ setprecision (int n);  

Parametro

N : nuovo valore per la precisione decimale.

Valore di ritorno

Questa funzione restituisce un oggetto di tipo non specificato. La funzione setbase dovrebbe essere utilizzata solo come manipolatore di flusso.

Gare di dati

L'oggetto stream in cui è inserito o estratto viene modificato e l'accesso simultaneo allo stesso oggetto stream può introdurre gare di dati.

Eccezioni

L'oggetto è in uno stato valido, se viene generata un'eccezione.

Esempio 1

Vediamo il semplice esempio per dimostrare l'uso di setprecision:

 #include // std::cout, std::fixed #include // std::setprecision using namespace std; int main () { double f =3.14159; cout << setprecision(5) << f << '
'; cout << setprecision(9) << f << '
'; cout << fixed; cout << setprecision(5) << f << '
'; cout << setprecision(9) << f << '
'; return 0; }  

Produzione:

 3.1416 3.14159 3.14159 3.141590000  

Esempio 2

Vediamo un altro semplice esempio:

 #include #include #include #include using namespace std; int main() { const long double pi = acos(-1.L); cout << 'default precision (6): ' << pi << '
' << 'setprecision(10): ' << setprecision(10) << pi << '
' << 'max precision:' << setprecision(numeric_limits::digits10 + 1) << pi << '
'; return 0; }  

Produzione:

 default precision (6): 3.14159 setprecision(10): 3.141592654 max precision:3.141592653589793239  

Esempio 3

Vediamo un altro semplice esempio:

 #include #include using namespace std; int main (void) { float a,b,c; a = 5; b = 3; c = a/b; cout << setprecision (1) << c << endl; cout << setprecision (2) << c << endl; cout << setprecision (3) << c << endl; cout << setprecision (4) << c << endl; cout << setprecision (5) << c << endl; cout << setprecision (6) << c << endl; return 0; }  

Produzione:

 2 1.7 1.67 1.667 1.6667 1.66667