logo

C++ Manipulatora iestatījuma precizitāte

C++ manipulatora iestatījuma precizitāte funkcija tiek izmantota, lai kontrolētu peldošā komata vērtības izvades plūsmas displeja ciparu skaitu.

Šis manipulators ir norādīts galvenes failā.

Sintakse

 /*unspecified*/ setprecision (int n); 

Parametrs

n : jauna decimāldaļas precizitātes vērtība.

Atdeves vērtība

Šī funkcija atgriež nenoteikta tipa objektu. Funkciju setbase vajadzētu izmantot tikai kā straumes manipulatoru.

Datu sacīkstes

Straumes objekts, kurā tas ir ievietots vai izvilkts, ir modificēts, un vienlaicīga piekļuve vienam un tam pašam straumes objektam var izraisīt datu sacīkstes.

Izņēmumi

Objekts ir derīgā stāvoklī, ja tiek izmests kāds izņēmums.

1. piemērs

Apskatīsim vienkāršu piemēru, lai parādītu setprecision izmantošanu:

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

Izvade:

 3.1416 3.14159 3.14159 3.141590000 

2. piemērs

Apskatīsim vēl vienu vienkāršu piemēru:

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

Izvade:

cast string kā int
 default precision (6): 3.14159 setprecision(10): 3.141592654 max precision:3.141592653589793239 

3. piemērs

Apskatīsim vēl vienu vienkāršu piemēru:

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

Izvade:

 2 1.7 1.67 1.667 1.6667 1.66667