Просто следите за обработкой исключений. Возвращение 0 означает, что значения равны, что может быть нежелательно, если строки недопустимы.
В любом случае, попробуйте что-то вроде этого:
DecimalFormat df = new DecimalFormat("+####.##%;-####.##%");
Double double1 = (Double)df.parse("+12.34%");
Double double2 = (Double)df.parse("-12.34%");
//including test
assertThat(double1, equalTo(Double.valueOf(.1234)));
assertThat(double2, equalTo(Double.valueOf(-.1234)));
assertThat(double1.compareTo(double2), equalTo(1));
assertThat(double1.compareTo(double1), equalTo(0));
assertThat(double2.compareTo(double1), equalTo(-1));