aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/Double.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/lang/Double.java')
-rw-r--r--libjava/java/lang/Double.java25
1 files changed, 23 insertions, 2 deletions
diff --git a/libjava/java/lang/Double.java b/libjava/java/lang/Double.java
index 10e9093..8de429e 100644
--- a/libjava/java/lang/Double.java
+++ b/libjava/java/lang/Double.java
@@ -18,7 +18,7 @@ package java.lang;
* Status: Believed complete and correct.
*/
-public final class Double extends Number
+public final class Double extends Number implements Comparable
{
public static final double MIN_VALUE = 5e-324;
public static final double MAX_VALUE = 1.7976931348623157e+308;
@@ -147,5 +147,26 @@ public final class Double extends Number
public static native long doubleToLongBits (double value);
public static native double longBitsToDouble (long bits);
-}
+ public int compareTo (Double d)
+ {
+ double v = d.value;
+ if (isNaN (value))
+ return isNaN (v) ? 1 : 0;
+ else if (isNaN (v))
+ return -1;
+ else if (value == 0.0 && v == -0.0)
+ return 1;
+ else if (value == -0.0 && v == 0.0)
+ return -1;
+ else if (value == v)
+ return 0;
+
+ return value > v ? 1 : -1;
+ }
+
+ public int compareTo (Object o)
+ {
+ return compareTo ((Double) o);
+ }
+}