std::fixed,std::scientific,std::hexfloat,std::defaultfloat (3) - Linux Manuals

std::fixed,std::scientific,std::hexfloat,std::defaultfloat: std::fixed,std::scientific,std::hexfloat,std::defaultfloat


std::fixed,std::scientific,std::hexfloat,std::defaultfloat - std::fixed,std::scientific,std::hexfloat,std::defaultfloat


Defined in header <ios>
std::ios_base& fixed( std::ios_base& str ); (1)
std::ios_base& scientific( std::ios_base& str ); (2)
std::ios_base& hexfloat( std::ios_base& str ); (3) (since C++11)
std::ios_base& defaultfloat( std::ios_base& str ); (4) (since C++11)

Modifies the default formatting for floating-point input/output.
1) Sets the floatfield of the stream str to fixed as if by calling str.setf(std::ios_base::fixed, std::ios_base::floatfield)
2) Sets the floatfield of the stream str to scientific as if by calling str.setf(std::ios_base::scientific, std::ios_base::floatfield)
3) Sets the floatfield of the stream str to fixed and scientific simultaneously as if by calling str.setf(std::ios_base::fixed | std::ios_base::scientific, std::ios_base::floatfield). This enables hexadecimal floating-point formatting.
4) Sets the floatfield of the stream str to zero, as if by calling str.unsetf(std::ios_base::floatfield). This enables the default floating-point formatting, which is different from fixed and scientific.
This is an I/O manipulator, it may be called with an expression such as out << std::fixed for any out of type std::basic_ostream or with an expression such as in >> std::scientific for any in of type std::basic_istream.


str - reference to I/O stream

Return value

str (reference to the stream after manipulation)


Hexadecimal floating-point formatting ignores the stream precision specification, as required by the specification of std::num_put::do_put.


// Run this code

  #include <iostream>
  #include <sstream>

  int main()
      std::cout << "The number 0.01 in fixed: " << std::fixed << 0.01 << '\n'
                << "The number 0.01 in scientific: " << std::scientific << 0.01 << '\n'
                << "The number 0.01 in hexfloat: " << std::hexfloat << 0.01 << '\n'
                << "The number 0.01 in default: " << std::defaultfloat << 0.01 << '\n';
      double f;
      std::istringstream("0x1P-1022") >> std::hexfloat >> f;
      std::cout << "Parsing 0x1P-1022 as hex gives " << f << '\n';


  The number 0.01 in fixed: 0.010000
  The number 0.01 in scientific: 1.000000e-02
  The number 0.01 in hexfloat: 0x1.47ae147ae147bp-7
  The number 0.01 in default: 0.01
  Parsing 0x1P-1022 as hex gives 2.22507e-308

See also

             changes floating-point precision
setprecision (function)