# std::setprecision

From cppreference.com
< cpp‎ | io‎ | manip

Defined in header `<iomanip>` |  |
/*unspecified*/ setprecision( int n ); |  |

When used in an expression out << setprecision(n) or in >> setprecision(n), sets the `precision` parameter of the stream `out` or `in` to exactly `n`.

### Parameters

n | - | new value for precision

### Return value

Returns an object of unspecified type such that if `str` is the name of an output stream of type std::basic_ostream <CharT, Traits> or an input stream of type std::basic_istream <CharT, Traits>, then the expression str << setprecision(n) or str >> setprecision(n) behaves as if the following code was executed:

str.precision(n);

### Example

Run this code

    #include <iostream>
    #include <iomanip>
    #include <cmath>
    #include <limits>
    int main()
    {
        const long double pi = std::acos(-1.L);
        std::cout << "default precision (6): " << pi << '\n'
                  << "std::setprecision(10): " << std::setprecision(10) << pi << '\n'
                  << "max precision:         "
                  << std::setprecision(std::numeric_limits<long double>::digits10 + 1)
                  << pi << '\n';
    }

Output:

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

### See also

fixedscientifichexfloatdefaultfloat (C++11)(C++11) | changes formatting used for floating-point I/O (function)
precision | manages decimal precision of floating point operations (public member function of `std::ios_base`)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/manip/setprecision&oldid=89876"