##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# 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`.

### [edit] Parameters

n | - | new value for precision

### [edit] 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);

### [edit] 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::precision(10):    " << std::setprecision(10) << pi << '\n'
                  << "max precision:         "
                  << std::setprecision(std::numeric_limits<long double>::digits10)
                  << pi << '\n';
    }

Output:

    default precision (6): 3.14159
    std::precision(10):    3.141592654
    max precision:         3.14159265358979324

### [edit] See also

fixed scientific hexfloat defaultfloat (C++11)(C++11) | changes formatting used for floating-point I/O (function) [edit]

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