Introduction to C++
For dealing with numerical data, C++ has many data types:
short, and more. Let's find out what's the difference and which ones to use.
We can split the numerical data types of C++ into two groups:
- Data types for whole numbers (e.g.,
- Data types for floating point numbers (e.g.,
The most used data type for a whole number is
int. As you have seen in the previous chapter, it can only hold numbers between -2147483648 and 2147483647.
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:
|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.
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:
int type ignores the decimal part of a number. The same story with
long. To store the floating point(decimal) numbers, we should use either
double data type.
|float||7 decimal digits||4 bytes|
|double||15 decimal digits||8 bytes|
Here is an example of using
double to store
floattype only has a precision of 7 digits, the number
123.456789is already out of its range. It can lead to inaccurate results(as shown in the example below). So it is better to use
doubleby default unless you are sure
float's precision is enough.
Obviously, you can use
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),
long should be used.