Double Class
1. Why Double Is Default (beginner)
double = 8-byte decimal, Java's default for 3.14 (no suffix needed!). Double = wrapper. Use for marks average, science, geometry — everywhere decimals needed (unless memory-critical float!).
2. Code — Average Done Right + Parse
int total = 7, n = 2;
System.out.println(total / n); // 3 (int trap!)
System.out.println(total / 2.0); // 3.5 (double math!)
Double obj = Double.valueOf("3.14"); // parse
System.out.println(obj + 1); // 4.14 (unboxed!)
System.out.println(Double.MAX_VALUE); // 1.7976931348623157E308
// precise compare (never ==!):
double a = 0.1 + 0.2;
System.out.println(Math.abs(a - 0.3) < 0.0001); // true (epsilon trick!)
3. Key Members
| Member | Use |
|---|---|
Double.parseDouble("3.14") |
String → double (CLI decimal args!) |
Double.isNaN(x) / isInfinite(x) |
check 0.0/0, 1.0/0 |
Double.compare(a,b) |
safe compare (-1/0/1, handles NaN!) |
Double.valueOf(...) |
object form for lists |
4. Traps
==fails on decimals (0.1+0.2 != 0.3binary!). Use epsilon orcompare.Double(null)unbox → NPE. Parse garbage →NumberFormatException.1/0(int) crashes (ArithmeticException);1.0/0(double) =Infinity!
5. Exam Points
- Average fix + epsilon + parse — 5 marks, frequent.
- int-divide crash vs double Infinity — 3 marks, favourite contrast.