The **double keyword** is a data type which is used to store decimal point values ranging from `1.7e-308`

to `1.7e+308`

. This range is represented in “scientific notation”, in normal form you can consider `1.7e+308`

equivalent to 17 followed by 307 zeroes.

public class JavaExample { public static void main(String[] args) { double num = 2005.455d; //a double variable System.out.println(num); //prints the value of num } }

Output:

2005.455

You can argue that a **float** data type servers the same purpose as it can store floating point values then why we need double data type? A double data type has larger range than a float data type so it can be used for extremely large and extremely small numbers.

## Example of double keyword with scientific notation

In the beginning, we used scientific notation to represent the range of double data type. Let’s take an example to understand this notation.

public class JavaExample { public static void main(String[] args) { double num = 101e+4; //equal to 101*10^4 double num2 = 50e-4; //equal to 50*10^-4 System.out.println(num); System.out.println(num2); } }

Output:

1010000.0 0.005