C++ manipulatorinstelprecisie De functie wordt gebruikt om het aantal cijfers van een uitvoerstroomweergave van een drijvende-kommawaarde te regelen.
Deze manipulator wordt gedeclareerd in het headerbestand.
Syntaxis
/*unspecified*/ setprecision (int n);
Parameter
N : nieuwe waarde voor de decimale precisie.
Winstwaarde
Deze functie retourneert een object van een niet-gespecificeerd type. De setbase-functie mag alleen worden gebruikt als streammanipulator.
Dataraces
Het stroomobject waarop het wordt ingevoegd of geëxtraheerd, wordt gewijzigd en gelijktijdige toegang tot hetzelfde stroomobject kan dataraces veroorzaken.
Uitzonderingen
Het object heeft een geldige status als er een uitzondering optreedt.
voorbeeld 1
Laten we het eenvoudige voorbeeld bekijken om het gebruik van setprecision te demonstreren:
#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; }
Uitgang:
3.1416 3.14159 3.14159 3.141590000
Voorbeeld 2
Laten we nog een eenvoudig voorbeeld bekijken:
#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; }
Uitgang:
default precision (6): 3.14159 setprecision(10): 3.141592654 max precision:3.141592653589793239
Voorbeeld 3
Laten we nog een eenvoudig voorbeeld bekijken:
#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; }
Uitgang:
2 1.7 1.67 1.667 1.6667 1.66667