Course Content
C++ Data Types
C++ Data Types
Working with Floating-Point Numbers
The numbers do not end with integers. There are also floating-point numbers. In C++, we use float
and double
data types to store them. This chapter will cover the float
data type, while the next will address the double
data type and its distinctions. Below is the syntax for the usage of float
:
float
float num = 0.45;
Let's take a quick look at how floating-point numbers are stored in memory.
The float
data type takes up 4 bytes of memory, just like an int
. However, converting such numbers to binary code is much trickier:
Here is an example of how float num = 13.45
would be stored:
It is okay if you do not entirely understand what is happening here. The important thing to note is that the representation of a float
is split into 3 parts:
-
the sign component is represented by either a plus (
+
) or minus (-
) symbol. It indicates whether a number is positive or negative; -
the exponent component determines the range that a number can represent. The larger the exponent, the wider the range of values that can be represented. For the
float
data type, the exponent occupies 1 byte (8 bits) of memory; -
the mantissa component determines the precision of a
float
. Not all numbers can be exactly represented in memory, and the precision of a number is defined by the length of the mantissa. For thefloat
data type, the mantissa length is 23 bits.
As a result, float
has a precision of 7 decimal digits and a range of 1.2e-38 to 3.4e+38 (applies to both negative and positive numbers). So most of the time, the range is not a problem. But precision sometimes is.
Thanks for your feedback!