Course Content
Introduction to C++
Introduction to C++
Numerical Data Types
When working with numerical data, C++ offers a variety of data types such as int
, float
, double
, short
and others. Let's explore the distinctions between these types and determine which ones are appropriate to use. We can split the numerical data types into two groups:
- Data types for whole numbers (e.g.,
12
); - Data types for floating point numbers (e.g.,
0.12
).
Whole numbers
Integer data types are the most commonly used for whole numbers. As you learned in the previous chapter, the int
data type can hold values within the range of -2,147,483,648 to 2,147,483,647.
main.cpp
That happens because when you declare an int
variable, it allocates precisely 4 bytes of your PC's memory. And numbers above 2147483647(or below -2147483648) do not fit inside those 4 bytes. Luckily, other data types available can allocate you more(or less) space for your needs. Here is the table:
Data Type | Range | Size |
short | -32,768 to 32,767 | 2 bytes |
int | -2,147,483,648 to 2,147,483,647 | 4 bytes |
long | -9223372036854775808 to 9223372036854775807 | 8 bytes |
So you can use long
to store large numbers (e.g., World's population). You can also use short
if you are sure your number will not exceed the -32,768 to 32,767 range(e.g., storing a user's age). Using short
will take up less space.
main.cpp
Note
Be careful with the data type you choose. If the range of a type is exceeded, the C++ compiler will not tell you this, and you will get an unexpected value without knowing something is wrong.
Floating point numbers
The data types above are designed to store whole numbers. If we tried to assign 1.6
to one of those, here is what we would get:
main.cpp
The int
type ignores the decimal part of a number. The same story with short
or long
. To store the floating point(decimal) numbers, we should use either float
or double
data type.
Data Type | Precision | Size |
float | 7 decimal digits | 4 bytes |
double | 15 decimal digits | 8 bytes |
Here is an example of using double
to store 1.6
.
main.cpp
Note
Since the
float
type only has a precision of 7 digits, the number123.456789
is already out of its range. It can lead to inaccurate results(as shown in the example below). So it is better to usedouble
by default unless you are surefloat
's precision is enough.
main.cpp
Obviously, you can use float
or double
to store whole numbers since those are decimal numbers with a decimal part equal to 0. However, as a good practice, if a variable stores values that can only be whole numbers (e.g., population or likes), short
/int
/long
should be used.
main.cpp
Everything was clear?