Sounds like you are getting bogged down in the use of the Double object vs the double primitive.
If you are using the Double object then compareTo() is worth a look for your use.
See if this snippet helps shed light :
public class Scratcher
{
public Scratcher()
{
}
public void cycle1()
{
double d1 = 56D;
double d2 = -546D;
double d3 = 0D;
Double D1 = new Double(d1);
Double D2 = new Double(d2);
Double D3 = new Double(d3);
printDouble(d1);
printDouble(d2);
printDouble(d3);
printDouble(D1);
printDouble(D2);
printDouble(D3);
}
public void printDouble(double d)
{
if (d > 0D)
System.out.println(d + " is > 0"

;
else if (d < 0D)
System.out.println(d + " is < 0"

;
else if (d == 0D)
System.out.println(d + " is == 0"

;
}
public void printDouble(Double d)
{
if (d.compareTo(new Double(0D)) > 0)
System.out.println(d.toString() + " is > 0"

;
else if (d.compareTo(new Double(0D)) < 0)
System.out.println(d.toString() + " is < 0"

;
else if (d.compareTo(new Double(0D)) == 0D)
System.out.println(d.toString() + " is == 0"

;
}
public static final void main(String[] args)
{
Scratcher me = new Scratcher();
me.cycle1();
}//eom
}//eoc
Will give as output :
56.0 is > 0
-546.0 is < 0
0.0 is == 0
56.0 is > 0
-546.0 is < 0
0.0 is == 0
RjB.