C Numeric Data Types
Numeric Types
Use int when you need to store a whole number without decimals, like 35 or 1000, and float or double when you need a floating point number (with decimals), like 9.99 or 3.14515.
float vs. double
The precision of a floating point value tells how many digits it can store correctly, counting the digits both before and after the decimal point.
The precision of float is about six or seven digits, while double variables have a precision
of about 15 digits. Therefore, it is often safer to use double for most calculations - but note that it takes up twice as much memory as float (8
bytes vs. 4 bytes).
Here you can see the difference. The number 1234567.89 has 9 digits, which is too many for a float:
Example
float myFloat = 1234567.89;
double myDouble = 1234567.89;
printf("%f\n", myFloat); // 1234567.875000
printf("%lf", myDouble); // 1234567.890000
Try it Yourself »
The float could not store the number exactly, so the last digits are wrong. The double stores it correctly.
Scientific Numbers
In C, you can write very large or very small floating-point numbers using scientific notation.
This is done using the letter e (or E), which stands for "times 10 to the power of".
For example, 35e3 means 35 × 10³ =
35000.
This is useful for writing numbers in a shorter way. Especially when working with scientific values or large-scale data.
Example
float f1 = 35e3; // 35 * 10^3 = 35000
double d1 = 12E4; // 12 * 10^4 = 120000
printf("%f\n", f1);
printf("%lf", d1);
Try it Yourself »