float (C++)
From Just Solve the File Format Problem
C++ float is the smallest possible floating point data type available. Unlike many other languages C++ doesn't use float as the default floating point, see double for that.
It is not possible to enumerate float values, and thus it cannot be used in constructs like switch.
Literals
Literals that need to be differentiated from double must be followed by f or F.
float a = 1.5; // This is a double that gets converted into a float float b = 1.5f; // This is a float that gets stored in a float
Besides that float can store positive infinity, negative infinity, and NaN (not a number). NaN is generated when the result is mathematically ambiguous or impossible to determine, for example 0รท0.
Characteristics
The <cfloat> library consists of the following constants describing the behaviour of float
- FLT_RADIX — base of the floating point numbers.
- FLT_MANT_DIG — number of mantissa digits.
- FLT_DIG — number of significant digits that can be stored.
- FLT_MIN_EXP — minimum negative exponent.
- FLT_MAX_EXP — maximum positive exponent.
- FLT_MIN_10_EXP — minimum base-10 negative exponent that can be transformed into a valid float
- FLT_MAX_10_EXP — maximum base-10 positive exponent that can be transformed into a valid float
- FLT_EPSILON — the difference from 1.0f to the smallest possible value that is greater than 1.0f
- FLT_MIN — the smallest possible value that is greater than 0.0f
Other C++ data types storing floating point numbers
- double not less precise than float
- long double not less precise than double