##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# floating point literal

From cppreference.com
< cpp‎ | language

Floating point literal defines a compile-time constant whose value is specified in the source file.

### [edit] Syntax

A floating-point literals have two syntaxes. The first one consists of the following parts:

  - nonempty sequence of decimal digits containing a decimal point character (defines significand)
  - (optional) `e` or `E` followed with optional minus or plus sign and nonempty sequence of decimal digits (defines exponent)
  - (optional) a suffix type specifier as a `l`, `f`, `L` or `F`

The second one consists of the following parts:

  - nonempty sequence of decimal digits (defines significant)
  - `e` or `E` followed with optional minus or plus sign and nonempty sequence of decimal digits (defines exponent)
  - (optional) a suffix type specifier as a `l`, `f`, `L` or `F`

The suffix type specifier defines the actual type of the floating-point literal:

  - (no suffix) defines double
  - `f F` defines float
  - `l L` defines long double

Optional single quotes(`'`) can be inserted between the digits as a separator, they are ignored when compiling. | (since C++14)

### [edit] Explanation

A decimal scientific notation is used, meaning that the exponent is the power of 10 by which the significant is multiplied.
The mathematical meaning of 123e4 is 123×104

### [edit] Example

Run this code

    #include <iostream>
    int main()
    {
      std::cout << 123.456e-67 << '\n'
                << .1E4f       << '\n'
                << 58.         << '\n'
                << 4e2         << '\n';
    }

Output:

    1.23456e-65
    1000
    58
    400

### [edit] Notes

The hexadecimal floating-point constants (e.g. `0x1p-5`, `0x1.0Ap-2`, `0x1.8p-1`), which are allowed in the C programming language, cannot be used as floating point literals in C++ (although some C++ compilers might interpret them). However, they may be parsed and printed by the I/O functions: both C++ I/O streams when std::hexfloat is enabled and the C I/O streams: std::printf, std::scanf, etc. See std::strtof for the format description

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/language/floating_literal&oldid=69163"