Double
Name
DoubleSynopsis
- Class Name:
java.lang.Double- Superclass:
java.lang.Number- Immediate Subclasses:
- None
- Interfaces Implemented:
- None
- Availability:
- JDK 1.0 or later
Description
The Double class provides an object wrapper for a double value. This is useful when you need to treat a double value as an object. For example, there are a number of utility methods that take a reference to an Object as one of their arguments. You cannot specify a double value for one of these arguments, but you can provide a reference to a Double object that encapsulates the double value. Furthermore, as of JDK 1.1, the Double class is necessary to support the Reflection API and class literals.
In Java, double values are represented using the IEEE 754 format. The Double class provides constants for the three special values that are mandated by this format: POSITIVE_INFINITY, NEGATIVE_INFINITY, and NaN (not-a-number).
The Double class also provides some utility methods, such as methods for determining whether a double value is an infinity value or NaN, for converting double values to other primitive types, and for converting a double to a String and vice versa.
Class Summary
public final class java.lang.Double extends java.lang.Number {
// Constants public final static double MAX_VALUE;
public final static double MIN_VALUE;
public final static double NaN;
public final static double NEGATIVE_INFINITY;
public final static double POSITIVE_INFINITY;
public final static Class TYPE; // New in 1.1 // Constructors public Double(double value);
public Double(String s); // Class Methods public static native long doubleToLongBits(double value);
public static boolean isInfinite(double v);
public static boolean isNaN(double v);
public static native double longBitsToDouble(long bits);
public static String toString(double d);
public static Double valueOf(String s); // Instance Methods public byte byteValue(); // New in 1.1 public double doubleValue();
public boolean equals(Object obj);
public float floatValue();
public int hashCode();
public int intValue();
public boolean isInfinite();
public boolean isNaN();
public long longValue();
public short shortValue(); // New in 1.1 public String toString();
}
Constants
MAX_VALUE
public static final double MAX_VALUE = 1.79769313486231570e+308
- Description
- The largest value that can be represented by a
double.
MIN_VALUE
public static final double MIN_VALUE = 4.94065645841246544e-324
- Description
- The smallest value that can be represented by a
double.
NaN
public static final double NaN = 0.0 / 0.0
- Description
- This variable represents the value not-a-number (NaN), which is a special value produced by
doubleoperations such as division of zero by zero. When NaN is one of the operands, most arithmetic operations return NaN as the result.Most comparison operators (
<,<=,==,>=,>) returnfalsewhen one of their arguments is NaN. The exception is!=, which returnstruewhen one of its arguments is NaN.
NEGATIVE_INFINITY
public static final double NEGATIVE_INFINITY = -1.0 / 0.0
- Description
- This variable represents the value negative infinity, which is produced when a
doubleoperation underflows or a negativedoublevalue is divided by zero. Negative infinity is by definition less than any otherdoublevalue.
POSITIVE_INFINITY
public static final double POSITIVE_INFINITY = 1.0 / 0.0
- Description
- This variable represents the value positive infinity, which is produced when a
doubleoperation overflows or a positivedoublevalue is divided by zero. Positive infinity is by definition greater than any otherdoublevalue.
TYPE
public static final Class TYPE
- Availability
- New as of JDK 1.1
- Description
- The
Classobject that represents the typedouble. It is always true thatDouble.TYPE==double.class.
Constructors
Double
public Double(double value)
- Parameters
-
value- The
doublevalue to be encapsulated by this object.
- Description
- Creates a
Doubleobject with the specifieddoublevalue.
public Double(String s) throws NumberFormatException
- Parameters
-
s- The string to be made into a
Doubleobject.
- Throws
-
NumberFormatException- If the sequence of characters in the given
Stringdoes not form a validdoubleliteral.
- Description
- Constructs a
Doubleobject with the value specified by the given string. The string must contain a sequence of characters that forms a legaldoubleliteral.
Class Methods
doubleToLongBits
public static native long doubleToLongBits(double value)
- Parameters
-
value- The
doublevalue to be converted.
- Returns
- The
longvalue that contains the same sequence of bits as the representation of the givendoublevalue. - Description
- This method returns the
longvalue that contains the same sequence of bits as the representation of the givendoublevalue. The meaning of the bits in the result is defined by the IEEE 754 floating-point format: bit 63 is the sign bit, bits 62-52 are the exponent, and bits 51-0 are the mantissa.An argument of
POSITIVE_INFINITYproduces the result0x7ff0000000000000L, an argument ofNEGATIVE_INFINITYproduces the result0xfff0000000000000L, and an argument ofNaNproduces the result0x7ff8000000000000L.The value returned by this method can be converted back to the original
doublevalue by thelongBitsToDouble()method.
isInfinite
static public boolean isInfinite(double v)
- Parameters
-
v- The
doublevalue to be tested.
- Returns
trueif the specified value is equal toPOSITIVE_INFINITYorNEGATIVE_INFINITY; otherwisefalse.- Description
- This method determines whether or not the specified value is an infinity value.
isNaN
public static boolean isNaN(double v)
- Parameters
-
v- The
doublevalue to be tested.
- Returns
trueif the specified value is equal toNaN; otherwisefalse.- Description
- This method determines whether or not the specified value is NaN.
longBitsToDouble
public static native double longBitsToDouble(long bits)
- Parameters
-
bits- The
longvalue to be converted.
- Returns
- The
doublevalue whose representation is the same as the bits in the givenlongvalue. - Description
- This method returns the
doublevalue whose representation is the same as the bits in the givendoublevalue. The meaning of the bits in thelongvalue is defined by the IEEE 754 floating-point format: bit 63 is the sign bit, bits 62-52 are the exponent, and bits 51-0 are the mantissa. The argument0x7f80000000000000Lproduces the resultPOSITIVE_INFINITYand the argument0xff80000000000000Lproduces the resultNEGATIVE_INFINITY. Arguments in the ranges0x7ff0000000000001Lthrough0x7fffffffffffffffLand0xfff0000000000001Lthrough0xffffffffffffffffLall produce the resultNaN.Except for NaN values not normally used by Java, this method is the inverse of the
doubleToLongBits()method.
toString
public static String toString(double d)
- Parameters
-
d- The
doublevalue to be converted.
- Returns
- A string representation of the given value.
- Description
- This method returns a
Stringobject that contains a representation of the givendoublevalue.The values
NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,-0.0, and+0.0are represented by the strings"NaN","--Infinity","Infinity","--0.0", and"0.0", respectively.For other values, the exact string representation depends on the value being converted. If the absolute value of
dis greater than or equal to 10^-3 or less than or equal to 10^7, it is converted to a string with an optional minus sign (if the value is negative) followed by up to eight digits before the decimal point, a decimal point, and the necessary number of digits after the decimal point (but no trailing zero if there is more than one significant digit). There is always a minimum of one digit after the decimal point.Otherwise, the value is converted to a string with an optional minus sign (if the value is negative), followed by a single digit, a decimal point, the necessary number of digits after the decimal point (but no trailing zero if there is more than one significant digit), and the letter
Efollowed by a plus or a minus sign and a base 10 exponent of at least one digit. Again, there is always a minimum of one digit after the decimal point.Note that the definition of this method has changed as of JDK 1.1. Prior to that release, the method provided a string representation that was equivalent to the
%gformat of theprintffunction in C.
valueOf
public static Double valueOf(String s) throws NumberFormatException
- Parameters
-
s- The string to be made into a
Doubleobject.
- Returns
- The
Doubleobject constructed from the string. - Throws
-
NumberFormatException- If the sequence of characters in the given
Stringdoes not form a validdoubleliteral.
- Description
- Constructs a
Doubleobject with the value specified by the given string. The string must contain a sequence of characters that forms a legaldoubleliteral. This method ignores leading and trailing white space in the string.
Instance Methods
byteValue
public byte byteValue()
- Availability
- New as of JDK 1.1
- Returns
- The value of this object as a
byte. - Overrides
Number.byteValue()- Description
- This method returns the truncated value of this object as a
byte. More specifically, if the value of the object isNaN, the method returns 0. If the value isPOSITIVE_INFINITY, or any other value that is too large to be represented by anbyte, the method returnsByte.MAX_VALUE. If the value isNEGATIVE_INFINITY, or any other value that is too small to be represented by anbyte, the method returnsByte.MIN_VALUE. Otherwise, the value is rounded toward zero and returned.
doubleValue
public double doubleValue()
- Returns
- The value of this object as a
double. - Overrides
Number.doubleValue()- Description
- This method returns the value of this object as a
double.
equals
public boolean equals(Object obj)
- Parameters
-
obj- The object to be compared with this object.
- Returns
trueif the objects are equal;falseif they are not.- Overrides
Object.equals()- Description
- This method returns
trueifobjis an instance ofDoubleand it contains the same value as the object this method is associated with. More specifically, the method returnstrueif thedoubleToLongBits()method returns the same result for the values of both objects.This method produces a different result than the
==operator when both values areNaN. In this case, the==operator producesfalse, while this method returnstrue. By the same token, the method also produces a different result when the two values are+0.0and-0.0. In this case, the==operator producestrue, while this method returnsfalse.
floatValue
public float floatValue()
- Returns
- The value of this object as a
float. - Overrides
Number.floatValue()- Description
- This method returns this object value as a
float. Rounding may occur.
hashCode
public int hashCode()
- Returns
- A hashcode based on the
doublevalue of the object. - Overrides
Object.hashCode()- Description
- This method returns a hashcode computed from the value of this object. More specifically, if
dis the value of the object, andbitValueis defined as:long bitValue = Double.doubleToLongBits(d)
then the hashcode returned by this method is computed as follows:
(int)(bitValue ^ (bitValue>>>32))
intValue
public int intValue()
- Returns
- The value of this object as an
int. - Overrides
Number.intValue()- Description
- This method returns the truncated value of this object as an
int. More specifically, if the value of the object isNaN, the method returns 0. If the value isPOSITIVE_INFINITY, or any other value that is too large to be represented by anint, the method returnsInteger.MAX_VALUE. If the value isNEGATIVE_INFINITY, or any other value that is too small to be represented by anint, the method returnsInteger.MIN_VALUE. Otherwise, the value is rounded toward zero and returned.
isInfinite
public boolean isInfinite()
- Returns
trueif the value of this object is equal toPOSITIVE_INFINITYorNEGATIVE_INFINITY; otherwisefalse.- Description
- This method determines whether or not the value of this object is an infinity value.
isNaN
public boolean isNaN()
- Returns
trueif the value of this object is equal toNaN; otherwisefalse.- Description
- This method determines whether or not the value of this object is NaN.
longValue
public long longValue()
- Returns
- The value of this object as a
long. - Overrides
Number.longValue()- Description
- This method returns the truncated value of this object as a
long. More specifically, if the value of the object isNaN, the method returns 0. If the value isPOSITIVE_INFINITY, or any other value too large to be represented by along, the method returnsLong.MAX_VALUE. If the value isNEGATIVE_INFINITY, or any other value too small to be represented by along, the method returnsLong.MIN_VALUE. Otherwise, the value is rounded toward zero and returned.
shortValue
public short shortValue()
- Availability
- New as of JDK 1.1
- Returns
- The value of this object as a
short. - Overrides
Number.shortValue()- Description
- This method returns the truncated value of this object as a
short. More specifically, if the value of the object isNaN, the method returns 0. If the value isPOSITIVE_INFINITY, or any other value that is too large to be represented by anshort, the method returnsShort.MAX_VALUE. If the value isNEGATIVE_INFINITY, or any other value that is too small to be represented by anshort, the method returnsShort.MIN_VALUE. Otherwise, the value is rounded toward zero and returned.
toString
public String toString()
- Returns
- A string representation of the value of this object.
- Overrides
Object.toString()- Description
- This method returns a
Stringobject that contains a representation of the value of this object.The values
NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,-0.0, and+0.0are represented by the strings"NaN","--Infinity","Infinity","--0.0", and"0.0", respectively.For other values, the exact string representation depends on the value being converted. If the absolute value of this object is greater than or equal to 10^-3 or less than or equal to 10^7, it is converted to a string with an optional minus sign (if the value is negative) followed by up to eight digits before the decimal point, a decimal point, and the necessary number of digits after the decimal point (but no trailing zero if there is more than one significant digit). There is always a minimum of one digit after the decimal point.
Otherwise, the value is converted to a string with an optional minus sign (if the value is negative), followed by a single digit, a decimal point, the necessary number of digits after the decimal point (but no trailing zero if there is more than one significant digit), and the letter
Efollowed by a plus or a minus sign and a base 10 exponent of at least one digit. Again, there is always a minimum of one digit after the decimal point.Note that the definition of this method has changed as of JDK 1.1. Prior to that release, the method provided a string representation that was equivalent to the
%gformat of theprintffunction in C.
Inherited Methods
| Method | Inherited From | Method | Inherited From |
|---|---|---|---|
clone()
| Object
| finalize()
| Object
|
getClass()
| Object
| notify()
| Object
|
notifyAll()
| Object
| wait()
| Object
|
wait(long)
| Object
| wait(long, int)
| Object |
See Also
Class; Exceptions; Float; Floating-point literals; Floating-point types; Number; String