Java Platform 1.2
Beta 4

Class java.lang.Double

java.lang.Object
  |
  +--java.lang.Number
        |
        +--java.lang.Double

public final class Double
extends Number
implements Comparable
The Double class wraps a value of the primitive type double in an object. An object of type Double contains a single field whose type is double.

In addition, this class provides several methods for converting a double to a String and a String to a double, as well as other constants and methods useful when dealing with a double.

Since:
JDK1.0
See Also:
Serialized Form

Field Summary
static double MAX_VALUE
          The largest positive value of type double.
static double MIN_VALUE
          The smallest positive value of type double.
static double NaN
          A NaN value of type double.
static double NEGATIVE_INFINITY
          The negative infinity of type double.
static double POSITIVE_INFINITY
          The positive infinity of type double.
static Class TYPE
          The Class object representing the primitive type double.
static int WIDEFP_MAX_EXPONENT
          If a double-extended format is available to code that has been declared to be or is by default FP-wide, this value is the maximum exponent that can be represented in the double-extended format.
static int WIDEFP_MIN_EXPONENT
          If a double-extended format is available to code that has been declared to be or is by default FP-wide, this value is the minimum exponent that can be represented in the double-extended format.
static int WIDEFP_SIGNIFICAND_BITS
          If a double-extended format is available to code that has been declared to be or is by default FP-wide, this value is the number of bits of significand that can be represented in the double-extended format.
 
Constructor Summary
Double(double value)
          Constructs a newly allocated Double object that represents the primitive double argument.
Double(String s)
          Constructs a newly allocated Double object that represents the floating- point value of type double represented by the string.
 
Method Summary
 byte byteValue()
          Returns the value of this Double as a byte (by casting to a byte).
 int compareTo(Double anotherDouble)
          Compares two Doubles numerically.
 int compareTo(Object o)
          Compares this Double to another Object.
static long doubleToLongBits(double value)
          Returns a representation of the specified floating-point value according to the IEEE 754 floating-point "double format" bit layout.
 double doubleValue()
          Returns the double value of this Double.
 boolean equals(Object obj)
          Compares this object against the specified object.
 float floatValue()
          Returns the float value of this Double.
 int hashCode()
          Returns a hashcode for this Double.
 int intValue()
          Returns the integer value of this Double (by casting to an int).
 boolean isInfinite()
          Returns true if this Double value is infinitely large in magnitude.
static boolean isInfinite(double v)
          Returns true if the specified number is infinitely large in magnitude.
 boolean isNaN()
          Returns true if this Double value is the special Not-a-Number (NaN) value.
static boolean isNaN(double v)
          Returns true if the specified number is the special Not-a-Number (NaN) value.
static double longBitsToDouble(long bits)
          Returns the double-float corresponding to a given bit represention.
 long longValue()
          Returns the long value of this Double (by casting to a long).
 short shortValue()
          Returns the value of this Double as a short (by casting to a short).
 String toString()
          Returns a String representation of this Double object.
static String toString(double d)
          Creates a string representation of the double argument.
static Double valueOf(String s)
          Returns a new Double value initialized to the value represented by the specified String.
 
Methods inherited from class java.lang.Object
clone , finalize , getClass , notify , notifyAll , wait , wait , wait
 

Field Detail

POSITIVE_INFINITY

public static final double POSITIVE_INFINITY
The positive infinity of type double.

NEGATIVE_INFINITY

public static final double NEGATIVE_INFINITY
The negative infinity of type double.

NaN

public static final double NaN
A NaN value of type double.

MAX_VALUE

public static final double MAX_VALUE
The largest positive value of type double.

MIN_VALUE

public static final double MIN_VALUE
The smallest positive value of type double.

WIDEFP_SIGNIFICAND_BITS

public static final int WIDEFP_SIGNIFICAND_BITS
If a double-extended format is available to code that has been declared to be or is by default FP-wide, this value is the number of bits of significand that can be represented in the double-extended format. The value must greater than or equal to 64, that is, it must be within the range specified for the number of significand bits in IEEE 754 single extended format. If a double-extended format is not available, the value of this constant is 53.
Since:
JDK1.2

WIDEFP_MIN_EXPONENT

public static final int WIDEFP_MIN_EXPONENT
If a double-extended format is available to code that has been declared to be or is by default FP-wide, this value is the minimum exponent that can be represented in the double-extended format. The value must less than or equal to -16382, that is, it must be within the range specified for the minimum exponent in IEEE 754 single extended format. If a double-extended format is not available, the value of this constant is -1022.
Since:
JDK1.2

WIDEFP_MAX_EXPONENT

public static final int WIDEFP_MAX_EXPONENT
If a double-extended format is available to code that has been declared to be or is by default FP-wide, this value is the maximum exponent that can be represented in the double-extended format. The value must greater than or equal to 16383, that is, it must be within the range specified for the maximum exponent in IEEE 754 single extended format. If a double-extended format is not available, the value of this constant is 1023.
Since:
JDK1.2

TYPE

public static final Class TYPE
The Class object representing the primitive type double.
Since:
JDK1.1
Constructor Detail

Double

public Double(double value)
Constructs a newly allocated Double object that represents the primitive double argument.
Parameters:
value - the value to be represented by the Double.

Double

public Double(String s)
       throws NumberFormatException
Constructs a newly allocated Double object that represents the floating- point value of type double represented by the string. The string is converted to a double value as if by the valueOf method.
Parameters:
s - a string to be converted to a Double.
Throws:
NumberFormatException - if the string does not contain a parsable number.
See Also:
valueOf(java.lang.String)
Method Detail

toString

public static String toString(double d)
Creates a string representation of the double argument.

The values NaN, NEGATIVE_INFINITY, POSITIVE_INFINITY, -0.0, and +0.0 are represented by the strings "NaN", "-Infinity", "Infinity", "-0.0", and "0.0", respectively.

If d is in the range 10-3 <= |d| <=107, then it is converted to a string in the style [-]ddd.ddd. Otherwise, it is converted to a string in the style [-]m.ddddE±xx.

There is always a minimum of one digit after the decimal point. The number of digits is the minimum needed to uniquely distinguish the argument value from adjacent values of type double.

Parameters:
d - the double to be converted.
Returns:
a string representation of the argument.

valueOf

public static Double valueOf(String s)
                      throws NumberFormatException
Returns a new Double value initialized to the value represented by the specified String.
Parameters:
s - the string to be parsed.
Returns:
a newly constructed Double initialized to the value represented by the string argument.
Throws:
NumberFormatException - if the string does not contain a parsable number.

isNaN

public static boolean isNaN(double v)
Returns true if the specified number is the special Not-a-Number (NaN) value.
Parameters:
v - the value to be tested.
Returns:
true if the value of the argument is NaN; false otherwise.

isInfinite

public static boolean isInfinite(double v)
Returns true if the specified number is infinitely large in magnitude.
Parameters:
v - the value to be tested.
Returns:
true if the value of the argument is positive infinity or negative infinity; false otherwise.

isNaN

public boolean isNaN()
Returns true if this Double value is the special Not-a-Number (NaN) value.
Returns:
true if the value represented by this object is NaN; false otherwise.

isInfinite

public boolean isInfinite()
Returns true if this Double value is infinitely large in magnitude.
Returns:
true if the value represented by this object is positive infinity or negative infinity; false otherwise.

toString

public String toString()
Returns a String representation of this Double object. The primitive double value represented by this object is converted to a string exactly as if by the method toString of one argument.
Returns:
a String representation of this object.
Overrides:
toString in class Object
See Also:
toString(double)

byteValue

public byte byteValue()
Returns the value of this Double as a byte (by casting to a byte).
Overrides:
byteValue in class Number
Since:
JDK1.1

shortValue

public short shortValue()
Returns the value of this Double as a short (by casting to a short).
Overrides:
shortValue in class Number
Since:
JDK1.1

intValue

public int intValue()
Returns the integer value of this Double (by casting to an int).
Returns:
the double value represented by this object is converted to type int and the result of the conversion is returned.
Overrides:
intValue in class Number

longValue

public long longValue()
Returns the long value of this Double (by casting to a long).
Returns:
the double value represented by this object is converted to type long and the result of the conversion is returned.
Overrides:
longValue in class Number

floatValue

public float floatValue()
Returns the float value of this Double.
Returns:
the double value represented by this object is converted to type float and the result of the conversion is returned.
Overrides:
floatValue in class Number
Since:
JDK1.0

doubleValue

public double doubleValue()
Returns the double value of this Double.
Returns:
the double value represented by this object.
Overrides:
doubleValue in class Number

hashCode

public int hashCode()
Returns a hashcode for this Double.
Returns:
a hash code value for this object.
Overrides:
hashCode in class Object

equals

public boolean equals(Object obj)
Compares this object against the specified object. The result is true if and only if the argument is not null and is a Double object that represents a double that has the identical bit pattern to the bit pattern of the double represented by this object.

Note that in most cases, for two instances of class Double, d1 and d2, the value of d1.equals(d2) is true if and only if

   d1.doubleValue() == d2.doubleValue()
 

also has the value true. However, there are two exceptions:

Parameters:
obj - the object to compare with.
Returns:
true if the objects are the same; false otherwise.
Overrides:
equals in class Object

doubleToLongBits

public static long doubleToLongBits(double value)
Returns a representation of the specified floating-point value according to the IEEE 754 floating-point "double format" bit layout.

Bit 63 represents the sign of the floating-point number. Bits 62-52 represent the exponent. Bits 51-0 represent the significand (sometimes called the mantissa) of the floating-point number.

If the argument is positive infinity, the result is 0x7ff0000000000000L.

If the argument is negative infinity, the result is 0xfff0000000000000L.

If the argument is NaN, the result is 0x7ff8000000000000L.

Parameters:
value - a double precision floating-point number.
Returns:
the bits that represent the floating-point number.

longBitsToDouble

public static double longBitsToDouble(long bits)
Returns the double-float corresponding to a given bit represention. The argument is considered to be a representation of a floating-point value according to the IEEE 754 floating-point "double precision" bit layout. That floating-point value is returned as the result.

If the argument is 0x7f80000000000000L, the result is positive infinity.

If the argument is 0xff80000000000000L, the result is negative infinity.

If the argument is any value in the range 0x7ff0000000000001L through 0x7fffffffffffffffL or in the range 0xfff0000000000001L through 0xffffffffffffffffL, the result is NaN. All IEEE 754 NaN values are, in effect, lumped together by the Java language into a single value.

Parameters:
bits - any long integer.
Returns:
the double floating-point value with the same bit pattern.

compareTo

public int compareTo(Double anotherDouble)
Compares two Doubles numerically.
Parameters:
anotherDouble - the Double to be compared.
Returns:
the value 0 if the argument Double is equal to this Double; a value less than 0 if this Double is numerically less than the Double argument; and a value greater than 0 if this Double is numerically greater than the Double argument (signed comparison).
Since:
JDK1.2

compareTo

public int compareTo(Object o)
Compares this Double to another Object. If the Object is a Double, this function behaves like compareTo(Double). Otherwise, it throws a ClassCastException (as Doubles are comparable only to other Doubles).
Specified by:
compareTo in interface Comparable
Parameters:
o - the Object to be compared.
Returns:
the value 0 if the argument is a Double numerically equal to this Double; a value less than 0 if the argument is a Double numerically greater than this Double; and a value greater than 0 if the argument is a Double numerically less than this Double.
Throws:
ClassCastException - if the argument is not a Double.
Since:
JDK1.2
See Also:
Comparable

Java Platform 1.2
Beta 4

Submit a bug or feature
Submit comments/suggestions about new javadoc look
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.
This documentation was generated with a post-Beta4 version of Javadoc.