Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Double | Numerical Data Types
C++ Data Types
course content

Course Content

C++ Data Types

C++ Data Types

1. Introduction
2. Numerical Data Types
3. Text Data Type
4. Other Data Types and Concepts

bookDouble

As you saw in the previous task, float's precision (7 decimal digits) is not always enough. But C++ has a solution: double. With a precision of 15 decimal digits, it is much more accurate than float. The syntax of using double is the same as always:

By default, cout prints floating-point numbers with a precision of 6 significant digits. That way, you won't see a difference between float and double. To set a larger precision, we can use std::cout << std::setprecision(15); again (this will set the precision to 15 significant digits).

Note

Don't forget to include <iomanip> to be able to use std::setprecision()

cpp

main

copy
123456789101112131415
#include <iostream> #include <iomanip> int main() { float pi_float = 3.14159265358979; double pi_double = 3.14159265358979; std::cout << "float pi: " << pi_float << std::endl; std::cout << "double pi: " << pi_double << std::endl; std::cout << std::setprecision(15); std::cout << "float pi with setprecision: " << pi_float << std::endl; std::cout << "double pi with setprecision: " << pi_double << std::endl; }

How is better precision achieved in double?

It just takes up more memory. A float type takes up 4 bytes, and a double takes up 8 bytes of memory.

There also is a long double type. Its size ranges from 8 bytes (just like a double) to 16 bytes. You can check the size of the long double on your system by using the following code:

Additionally, you should add L to a value you are assigning (otherwise, the value will be assigned with the precision of double). Look at the example:

Here is a little summary:

Task
test

Swipe to show code editor

You need to calculate (1/3)² using different data types. For that, assign the value of 1/3 to the float, double, and long double typed variables.
Then print those numbers multiplied by themselves, for example:

Steps:

  • Initialize a float variable with the value 1/3.;
  • Initialize a double variable with the value 1/3.;
  • Initialize a long double variable with the value 1/3.L.
    note: long double takes up 16 bytes of memory on our system
  • Set the precision of output to 25 decimals with setprecision(25);
  • Print all those values multiplied by themselves.

Note

If you got zeros in the output, make sure you assigned the values exactly like shown above (1/3., 1/3.L).
We will discuss the reasons for this behavior in the Arithmetic Operations chapter.

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 2. Chapter 5
toggle bottom row

bookDouble

As you saw in the previous task, float's precision (7 decimal digits) is not always enough. But C++ has a solution: double. With a precision of 15 decimal digits, it is much more accurate than float. The syntax of using double is the same as always:

By default, cout prints floating-point numbers with a precision of 6 significant digits. That way, you won't see a difference between float and double. To set a larger precision, we can use std::cout << std::setprecision(15); again (this will set the precision to 15 significant digits).

Note

Don't forget to include <iomanip> to be able to use std::setprecision()

cpp

main

copy
123456789101112131415
#include <iostream> #include <iomanip> int main() { float pi_float = 3.14159265358979; double pi_double = 3.14159265358979; std::cout << "float pi: " << pi_float << std::endl; std::cout << "double pi: " << pi_double << std::endl; std::cout << std::setprecision(15); std::cout << "float pi with setprecision: " << pi_float << std::endl; std::cout << "double pi with setprecision: " << pi_double << std::endl; }

How is better precision achieved in double?

It just takes up more memory. A float type takes up 4 bytes, and a double takes up 8 bytes of memory.

There also is a long double type. Its size ranges from 8 bytes (just like a double) to 16 bytes. You can check the size of the long double on your system by using the following code:

Additionally, you should add L to a value you are assigning (otherwise, the value will be assigned with the precision of double). Look at the example:

Here is a little summary:

Task
test

Swipe to show code editor

You need to calculate (1/3)² using different data types. For that, assign the value of 1/3 to the float, double, and long double typed variables.
Then print those numbers multiplied by themselves, for example:

Steps:

  • Initialize a float variable with the value 1/3.;
  • Initialize a double variable with the value 1/3.;
  • Initialize a long double variable with the value 1/3.L.
    note: long double takes up 16 bytes of memory on our system
  • Set the precision of output to 25 decimals with setprecision(25);
  • Print all those values multiplied by themselves.

Note

If you got zeros in the output, make sure you assigned the values exactly like shown above (1/3., 1/3.L).
We will discuss the reasons for this behavior in the Arithmetic Operations chapter.

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 2. Chapter 5
toggle bottom row

bookDouble

As you saw in the previous task, float's precision (7 decimal digits) is not always enough. But C++ has a solution: double. With a precision of 15 decimal digits, it is much more accurate than float. The syntax of using double is the same as always:

By default, cout prints floating-point numbers with a precision of 6 significant digits. That way, you won't see a difference between float and double. To set a larger precision, we can use std::cout << std::setprecision(15); again (this will set the precision to 15 significant digits).

Note

Don't forget to include <iomanip> to be able to use std::setprecision()

cpp

main

copy
123456789101112131415
#include <iostream> #include <iomanip> int main() { float pi_float = 3.14159265358979; double pi_double = 3.14159265358979; std::cout << "float pi: " << pi_float << std::endl; std::cout << "double pi: " << pi_double << std::endl; std::cout << std::setprecision(15); std::cout << "float pi with setprecision: " << pi_float << std::endl; std::cout << "double pi with setprecision: " << pi_double << std::endl; }

How is better precision achieved in double?

It just takes up more memory. A float type takes up 4 bytes, and a double takes up 8 bytes of memory.

There also is a long double type. Its size ranges from 8 bytes (just like a double) to 16 bytes. You can check the size of the long double on your system by using the following code:

Additionally, you should add L to a value you are assigning (otherwise, the value will be assigned with the precision of double). Look at the example:

Here is a little summary:

Task
test

Swipe to show code editor

You need to calculate (1/3)² using different data types. For that, assign the value of 1/3 to the float, double, and long double typed variables.
Then print those numbers multiplied by themselves, for example:

Steps:

  • Initialize a float variable with the value 1/3.;
  • Initialize a double variable with the value 1/3.;
  • Initialize a long double variable with the value 1/3.L.
    note: long double takes up 16 bytes of memory on our system
  • Set the precision of output to 25 decimals with setprecision(25);
  • Print all those values multiplied by themselves.

Note

If you got zeros in the output, make sure you assigned the values exactly like shown above (1/3., 1/3.L).
We will discuss the reasons for this behavior in the Arithmetic Operations chapter.

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Everything was clear?

How can we improve it?

Thanks for your feedback!

As you saw in the previous task, float's precision (7 decimal digits) is not always enough. But C++ has a solution: double. With a precision of 15 decimal digits, it is much more accurate than float. The syntax of using double is the same as always:

By default, cout prints floating-point numbers with a precision of 6 significant digits. That way, you won't see a difference between float and double. To set a larger precision, we can use std::cout << std::setprecision(15); again (this will set the precision to 15 significant digits).

Note

Don't forget to include <iomanip> to be able to use std::setprecision()

cpp

main

copy
123456789101112131415
#include <iostream> #include <iomanip> int main() { float pi_float = 3.14159265358979; double pi_double = 3.14159265358979; std::cout << "float pi: " << pi_float << std::endl; std::cout << "double pi: " << pi_double << std::endl; std::cout << std::setprecision(15); std::cout << "float pi with setprecision: " << pi_float << std::endl; std::cout << "double pi with setprecision: " << pi_double << std::endl; }

How is better precision achieved in double?

It just takes up more memory. A float type takes up 4 bytes, and a double takes up 8 bytes of memory.

There also is a long double type. Its size ranges from 8 bytes (just like a double) to 16 bytes. You can check the size of the long double on your system by using the following code:

Additionally, you should add L to a value you are assigning (otherwise, the value will be assigned with the precision of double). Look at the example:

Here is a little summary:

Task
test

Swipe to show code editor

You need to calculate (1/3)² using different data types. For that, assign the value of 1/3 to the float, double, and long double typed variables.
Then print those numbers multiplied by themselves, for example:

Steps:

  • Initialize a float variable with the value 1/3.;
  • Initialize a double variable with the value 1/3.;
  • Initialize a long double variable with the value 1/3.L.
    note: long double takes up 16 bytes of memory on our system
  • Set the precision of output to 25 decimals with setprecision(25);
  • Print all those values multiplied by themselves.

Note

If you got zeros in the output, make sure you assigned the values exactly like shown above (1/3., 1/3.L).
We will discuss the reasons for this behavior in the Arithmetic Operations chapter.

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Section 2. Chapter 5
Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
We're sorry to hear that something went wrong. What happened?
some-alt