logo

Setprecision manipulator C++

Setprecision manipulator C++ funcția este utilizată pentru a controla numărul de cifre ale unui flux de ieșire de afișare a unei valori în virgulă mobilă.

Acest manipulator este declarat în fișierul antet.

Sintaxă

 /*unspecified*/ setprecision (int n); 

Parametru

n : valoare nouă pentru precizia zecimală.

Valoare returnată

Această funcție returnează un obiect de tip nespecificat. Funcția setbase ar trebui să fie folosită doar ca manipulator de flux.

căutarea bfs

Curse de date

Obiectul flux pe care este inserat sau extras este modificat și accesul concurent la același obiect flux poate introduce curse de date.

Excepții

Obiectul este într-o stare validă, dacă se aruncă vreo excepție.

Exemplul 1

Să vedem exemplul simplu pentru a demonstra utilizarea setprecision:

factorial în c
 #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; } 

Ieșire:

 3.1416 3.14159 3.14159 3.141590000 

Exemplul 2

Să vedem un alt exemplu simplu:

 #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; } 

Ieșire:

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

Exemplul 3

Să vedem un alt exemplu simplu:

 #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; } 

Ieșire:

 2 1.7 1.67 1.667 1.6667 1.66667