double
Keyword in Java
The double
keyword in Java is used to declare a variable that can hold a double-precision 64-bit floating-point number. It is a primitive data type and part of the foundational set of types in the Java language.
Think of double
as the go-to data type when you need more accuracy and range for decimal numbers than what float
provides. It's often used for scientific calculations, measurements, and values that require a higher level of precision.
Syntax of the double
Keyword
double variableName = value;
You can assign a literal value directly, or store the result of an expression.
Examples of Using double
in Java
1. Declaring and Printing a Double Value
public class Main {
public static void main(String[] args) {
double pi = 3.14159;
System.out.println("Value of pi: " + pi);
}
}
Value of pi: 3.14159
Here, the variable pi
is declared using the double
keyword. It can precisely represent decimal values like 3.14159.
2. Performing Arithmetic with Doubles
public class Main {
public static void main(String[] args) {
double price = 99.99;
double taxRate = 0.08;
double totalPrice = price + (price * taxRate);
System.out.println("Total Price: " + totalPrice);
}
}
Total Price: 107.9892
The double
type handles calculations involving decimals and gives results with more precision than float
.
3. Implicit Type Promotion in Expressions
public class Main {
public static void main(String[] args) {
int items = 4;
double pricePerItem = 12.75;
double total = items * pricePerItem;
System.out.println("Total cost: " + total);
}
}
Total cost: 51.0
Even though items
is an integer, Java automatically promotes it to double
for the multiplication, maintaining floating-point precision.
Why Use double
Instead of float
?
- Precision:
double
is more precise (15–16 digits vs. 6–7 forfloat
). - Default choice: In Java, floating-point literals are treated as
double
by default. - Scientific needs: When working with real-world measurements or scientific calculations,
double
is the preferred choice.
Memory Consumption of double
A double
occupies 8 bytes (64 bits) of memory. This is double the size of a float
which uses 4 bytes. The extra space is worth it when accuracy matters.
Limitations of double
- Not suitable for financial calculations where exact precision is needed (use
BigDecimal
instead). - Floating-point arithmetic can introduce small rounding errors.
Default Values of double
When used as an instance or class variable (i.e., not local), the default value of a double
is 0.0
.
Example:
public class Example {
static double rate;
public static void main(String[] args) {
System.out.println("Default rate: " + rate);
}
}
Default rate: 0.0