
- The C Standard Library
- The C Standard Library
- The C++ Standard Library
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
C++ ios Library - Function Scientific
Description
It is used to sets the floatfield format flag for the str stream to scientific. When floatfield is set to scientific, floating-point values are written using scientific notation: the value is represented always with only one digit before the decimal point, followed by the decimal point and as many decimal digits as the precision field (precision). Finally, this notation always includes an exponential part consisting on the letter e followed by an optional sign and three exponential digits.
C++98
The floatfield format flag is both a selective and a toggle flag: it can take one or more 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 |
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::scientific function.
ios_base& scientific (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::scientific 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