C++ ios Library - Fixed Function


Advertisements

Description

It is used to sets the floatfield format flag for the str stream to fixed. When floatfield is set to fixed, floating-point values are written using fixed-point notation: the value is represented with exactly as many digits in the decimal part as specified by the precision field (precision) and with no exponent part.

C++98

The floatfield format flag is both a selective and a toggle flag: it can take one, both or none of the following values as shown below −

Flag value Effect when set
fixed write floating-point values in fixed-point notation
scientific write floating-point values in scientific notation.
(none) write floating-point values in default floating-point notation.

C++11

The floatfield format flag is both a selective and a toggle flag: it can take any of the following values, or none as shown below −

Flag value Effect when set
fixed write floating-point values in fixed-point notation.
scientific write floating-point values in scientific notation.
hexfloat

write floating-point values in hexadecimal format.

The value of this is the same as (fixed|scientific)

defaultfloat write floating-point values in default floating-point notation. This is the value by default (same as none, before any other floatfield bit is set).

Declaration

Following is the declaration for std::fixed function.

ios_base& fixed (ios_base& str);

Parameters

str − Stream object whose format flag is affected.

Return Value

It returns Argument str.

Exceptions

Basic guarantee − if an exception is thrown, str is in a valid state.

Data races

It modifies str. Concurrent access to the same stream object may cause data races.

Example

In below example explains about std::fixed function.

#include <iostream>     

int main () {
   double a = 3.1415926534;
   double b = 2006.0;
   double c = 1.0e-10;

   std::cout.precision(5);

   std::cout << "default:\n";
   std::cout << a << '\n' << b << '\n' << c << '\n';

   std::cout << '\n';

   std::cout << "fixed:\n" << std::fixed;
   std::cout << a << '\n' << b << '\n' << c << '\n';

   std::cout << '\n';

   std::cout << "scientific:\n" << std::scientific;
   std::cout << a << '\n' << b << '\n' << c << '\n';
   return 0;
}

Let us compile and run the above program, this will produce the following result −

default:
3.1416
2006
1e-010

fixed:
3.14159
2006.00000
0.00000

scientific:
3.14159e+000
2.00600e+003
1.00000e-010
ios.htm
Advertisements