Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::setprecision(3)	      C++ Standard Libary	  std::setprecision(3)

NAME
       std::setprecision - std::setprecision

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

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

Parameters
	  n - new value	for precision

Return value
	  An object of unspecified type	such that

	    *  if  out is an object of type std::basic_ostream<CharT, Traits>,
       the expression
	      out << setprecision(n)
		 * has type std::basic_ostream<CharT, Traits>&
		 * has value out
		 * behaves as if it called f(out, n)
	    * if in is an object of  type  std::basic_istream<CharT,  Traits>,
       the expression in
	      >> setprecision(n)
		 * has type std::basic_istream<CharT, Traits>&
		 * has value in
		 * behaves as if it called f(in, n)

	  where	the function f is defined as:

	void f(std::ios_base& str, int n)
	{
	    // set precision
	    str.precision(n);
	}

Example
       // Run this code

	#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	  dou-
       ble>::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  de-
       faults
	}

Output:
	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

	  Defect reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	    DR	  Applied to		Behavior as published		  Cor-
       rect behavior
	  LWG  183 C++98      setprecision could only be used with streams us-
       able with any
			     of	   type	   std::ostream	   or	  std::istream
       character stream

See also
	  fixed
	  scientific
	  hexfloat     changes formatting used for floating-point I/O
	  defaultfloat (function)
	  (C++11)
	  (C++11)
	  precision    manages decimal precision of floating point operations
		       (public member function of std::ios_base)

http://cppreference.com		  2024.06.10		  std::setprecision(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::setprecision&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help