Numbers can be represented using Integer data types in C++. But some numbers like real numbers cannot be stored like integers because there is a decimal part associated with the real numbers.
C++ programming language has and
data type to represent real numbers.
A real number is declared using keyword – or
. The main difference between
and
is the size. The size of float is
bytes or
bits, where the size of
type is
bytes or
bits. There is a long version of the
data type which is about
bytes or
bytes in size.
Data Types | Byte Size | Bit Size (1 byte = 8 bits) |
float | 4 | 32 |
double | 8 | 64 |
long double | 12 or 16 | 96 or 128 |
Computer Representation of Floating Point
The real numbers are represented in scientific notation (or exponential notation) because it is easier to perform arithmetic involving real values.
The Exponential Notation
The exponential notation has two parts – and
. The equation to represent the
numbers in
is shown below.
\begin{aligned}&\pm M * 10^E\\ \\ &where \\ \\ &0 \leq M \leq 10\end{aligned}
For example, suppose you want to represent in exponential notation then it becomes
\begin{aligned}&2.0 \cdot 10^4\\ \\&where \\ \\ &0 \leq 2 \leq 10\end{aligned}
If you want to represent in scientific notation, then
\begin{aligned}&1.33 \cdot 10^3\\ \\&where \\ \\&0 \leq 1.33 \leq 10\end{aligned}
The number can be represented as
\begin{aligned}&5.454 \cdot 10^{-5} \\ \\&where\\ \\&0 \leq 5.454 \leq 10\end{aligned}
The table isolates the different parts of the examples given above.
Mantissa | Exponent | E-notation |
2.0 | 4 | 2.0E4 |
1.33 | 3 | 1.33E3 |
5.454 | -5 | 5.454E-5 |
The above notation is suitable for human, but the computer needs a binary representation of numbers and that too, in
format.
Since we already know that bytes or
bit is required to store a floating point number in a computer. The
number is divided into
parts –
bits for the mantissa,
bit for sign, and
bit for exponents.
The sign bit means positive number and
means a negative number.
The exponent can store values between
to
.
The computer representation of exponential notation is:
\begin{aligned}&(b_0. b_1 b_2 b_3 \cdots ) \cdot 2^E\\ \\&where \\ \\&b_{0} = 1\end{aligned}
This representation is called the .

Declaring Floating Type and Double Type
Declaring a floating type and double data type variabe in a C program is similar.
float PI 3.14;
double radius 5,33;
There is little difference between and
though they are represented in the same way in a computer. The double precision is longer than the float in terms of allowing the real part of a floating number.
\begin{aligned}&3.244440\\ \\&3.244440000000000 \hspace{3px}(double \hspace{3px} is \hspace{3px} has \hspace{3px} longer \hspace{3px} decimal \hspace{3px} part )\end{aligned}