std:: setprecision
|
Definiert in Header
<iomanip>
|
||
|
/*unspecified*/
setprecision
(
int
n
)
;
|
||
Wenn in einem Ausdruck verwendet
out
<<
setprecision
(
n
)
oder
in
>>
setprecision
(
n
)
, setzt den
precision
-Parameter des Streams
out
oder
in
exakt auf
n
.
Inhaltsverzeichnis |
Parameter
| n | - | neuer Wert für die Genauigkeit |
Rückgabewert
Ein Objekt eines nicht näher spezifizierten Typs, sodass
-
Wenn
out
ein Objekt vom Typ
std::
basic_ostream
<
CharT, Traits
>
ist, dann hat der Ausdruck
out
<<
setprecision
(
n
)
- den Typ std:: basic_ostream < CharT, Traits > &
- den Wert out
- verhält sich, als ob f ( out, n ) aufgerufen würde
-
Wenn
in
ein Objekt vom Typ
std::
basic_istream
<
CharT, Traits
>
ist, dann hat der Ausdruck
in
>>
setprecision
(
n
)
- den Typ std:: basic_istream < CharT, Traits > &
- den Wert in
- verhält sich, als ob f ( in, n ) aufgerufen würde
wobei die Funktion f definiert ist als:
void f(std::ios_base& str, int n) { // Genauigkeit setzen str.precision(n); }
Beispiel
#include <iomanip> #include <iostream> #include <limits> #include <numbers> int main() { constexpr long double pi{std::numbers::pi_v<long double>}; const auto default_precision{std::cout.precision()}; constexpr auto max_precision{std::numeric_limits<long double>::digits10 + 1}; std::cout << "default precision: " << default_precision << '\n' << "maximum precision: " << max_precision << "\n\n" "precision: pi:\n"; for (int p{0}; p <= max_precision; ++p) std::cout << std::setw(2) << p << " " << std::setprecision(p) << pi << '\n'; std::cout << std::setprecision(default_precision); // restore defaults }
Ausgabe:
default precision: 6 maximum precision: 19 precision: pi: 0 3 1 3 2 3.1 3 3.14 4 3.142 5 3.1416 6 3.14159 7 3.141593 8 3.1415927 9 3.14159265 10 3.141592654 11 3.1415926536 12 3.14159265359 13 3.14159265359 14 3.1415926535898 15 3.14159265358979 16 3.141592653589793 17 3.1415926535897932 18 3.14159265358979324 19 3.141592653589793239
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 183 | C++98 |
setprecision
konnte nur mit Streams
vom Typ std::ostream oder std::istream verwendet werden |
verwendbar mit jedem
Zeichenstream |
Siehe auch
|
(C++11)
(C++11)
|
ändert die Formatierung für Gleitkomma-Ein-/Ausgabe
(Funktion) |
|
verwaltet die Dezimalgenauigkeit von Gleitkommaoperationen
(öffentliche Elementfunktion von
std::ios_base
)
|