java.lang
public final class Double extends Number implements Comparable<Double>
Double
represent primitive
double
values.
Additionally, this class provides various helper functions and variables
related to doubles.
Since: 1.0
UNKNOWN: partly updated to 1.5
Field Summary | |
---|---|
static double | MAX_VALUE
The maximum positive value a double may represent
is 1.7976931348623157e+308. |
static double | MIN_VALUE
The minimum positive value a double may represent
is 5e-324. |
static double | NaN
All IEEE 754 values of NaN have the same value in Java. |
static double | NEGATIVE_INFINITY
The value of a double representation -1.0/0.0, negative
infinity. |
static double | POSITIVE_INFINITY
The value of a double representing 1.0/0.0, positive infinity. |
static int | SIZE
The number of bits needed to represent a double . |
static Class<Double> | TYPE
The primitive type double is represented by this
Class object. |
Constructor Summary | |
---|---|
Double(double value)
Create a Double from the primitive double
specified.
| |
Double(String s)
Create a Double from the specified String .
|
Method Summary | |
---|---|
byte | byteValue()
Return the value of this Double as a byte .
|
static int | compare(double x, double y)
Behaves like new Double(x).compareTo(new Double(y)) ; in
other words this compares two doubles, special casing NaN and zero,
without the overhead of objects.
|
int | compareTo(Double d)
Compare two Doubles numerically by comparing their double
values. |
static long | doubleToLongBits(double value)
Convert the double to the IEEE 754 floating-point "double format" bit
layout. |
static long | doubleToRawLongBits(double value)
Convert the double to the IEEE 754 floating-point "double format" bit
layout. |
double | doubleValue()
Return the value of this Double .
|
boolean | equals(Object obj)
Returns true if obj is an instance of
Double and represents the same double value. |
float | floatValue()
Return the value of this Double as a float .
|
int | hashCode()
Return a hashcode representing this Object. |
int | intValue()
Return the value of this Double as an int .
|
static boolean | isInfinite(double v)
Return true if the double has a value
equal to either NEGATIVE_INFINITY or
POSITIVE_INFINITY , otherwise return false .
|
boolean | isInfinite()
Return true if the value of this Double
is the same as NEGATIVE_INFINITY or
POSITIVE_INFINITY , otherwise return false .
|
static boolean | isNaN(double v)
Return true if the double has the same
value as NaN , otherwise return false .
|
boolean | isNaN()
Return true if the value of this Double
is the same as NaN , otherwise return false .
|
static double | longBitsToDouble(long bits)
Convert the argument in IEEE 754 floating-point "double format" bit
layout to the corresponding float. |
long | longValue()
Return the value of this Double as a long .
|
static double | parseDouble(String str)
Parse the specified String as a double . |
short | shortValue()
Return the value of this Double as a short .
|
static String | toHexString(double d)
Convert a double value to a hexadecimal string. |
static String | toString(double d)
Convert the double to a String .
|
String | toString()
Convert the double value of this Double
to a String . |
static Double | valueOf(double val)
Returns a Double object wrapping the value.
|
static Double | valueOf(String s)
Create a new Double object using the String .
|
double
may represent
is 1.7976931348623157e+308.double
may represent
is 5e-324.double
.Since: 1.5
double
is represented by this
Class
object.Since: 1.1
Double
from the primitive double
specified.
Parameters: value the double
argument
Double
from the specified String
.
This method calls Double.parseDouble()
.
Parameters: s the String
to convert
Throws: NumberFormatException if s
cannot be parsed as a
double
NullPointerException if s
is null
See Also: parseDouble
Double
as a byte
.
Returns: the byte value
Since: 1.1
new Double(x).compareTo(new Double(y))
; in
other words this compares two doubles, special casing NaN and zero,
without the overhead of objects.
Parameters: x the first double to compare y the second double to compare
Returns: the comparison
Since: 1.4
double
values. The result is positive if the first is greater, negative if the
second is greater, and 0 if the two are equal. However, this special
cases NaN and signed zero as follows: NaN is considered greater than
all other doubles, including POSITIVE_INFINITY
, and positive
zero is considered greater than negative zero.
Parameters: d the Double to compare
Returns: the comparison
Since: 1.2
Double.longBitsToDouble(long)
to obtain the original
double
value.
Parameters: value the double
to convert
Returns: the bits of the double
See Also: Double
Double.longBitsToDouble(long)
to obtain the original
double
value.
Parameters: value the double
to convert
Returns: the bits of the double
See Also: Double
Double
.
Returns: the double value
true
if obj
is an instance of
Double
and represents the same double value. Unlike comparing
two doubles with ==
, this treats two instances of
Double.NaN
as equal, but treats 0.0
and
-0.0
as unequal.
Note that d1.equals(d2)
is identical to
doubleToLongBits(d1.doubleValue()) ==
doubleToLongBits(d2.doubleValue())
.
Parameters: obj the object to compare
Returns: whether the objects are semantically equal
Double
as a float
.
Returns: the float value
Double
's hash
code is calculated by:long v = Double.doubleToLongBits(doubleValue());
int hash = (int)(v^(v>>32))
.
Returns: this Object's hash code
See Also: Double
Double
as an int
.
Returns: the int value
true
if the double
has a value
equal to either NEGATIVE_INFINITY
or
POSITIVE_INFINITY
, otherwise return false
.
Parameters: v the double
to compare
Returns: whether the argument is (-/+) infinity.
true
if the value of this Double
is the same as NEGATIVE_INFINITY
or
POSITIVE_INFINITY
, otherwise return false
.
Returns: whether this Double
is (-/+) infinity
true
if the double
has the same
value as NaN
, otherwise return false
.
Parameters: v the double
to compare
Returns: whether the argument is NaN
.
true
if the value of this Double
is the same as NaN
, otherwise return false
.
Returns: whether this Double
is NaN
Double.doubleToRawLongBits(double)
.
Parameters: bits the bits to convert
Returns: the double
represented by the bits
Double
as a long
.
Returns: the long value
String
as a double
. The
extended BNF grammar is as follows:DecodableString: ( [-
|+
]NaN
) | ( [-
|+
]Infinity
) | ( [-
|+
] FloatingPoint [f
|F
|d
|D
] ) FloatingPoint: ( { Digit }+ [.
{ Digit } ] [ Exponent ] ) | (.
{ Digit }+ [ Exponent ] ) Exponent: ( (e
|E
) [-
|+
] { Digit }+ ) Digit:'0'
through'9'
NaN and infinity are special cases, to allow parsing of the output of toString. Otherwise, the result is determined by calculating n * 10exponent to infinite precision, then rounding to the nearest double. Remember that many numbers cannot be precisely represented in floating point. In case of overflow, infinity is used, and in case of underflow, signed zero is used. Unlike Integer.parseInt, this does not accept Unicode digits outside the ASCII range.
If an unexpected character is found in the String
, a
NumberFormatException
will be thrown. Leading and trailing
'whitespace' is ignored via String.trim()
, but spaces
internal to the actual number are not allowed.
To parse numbers according to another format, consider using {@link java.text.NumberFormat}.
Parameters: str the String
to convert
Returns: the double
value of s
Throws: NumberFormatException if s
cannot be parsed as a
double
NullPointerException if s
is null
Since: 1.2
See Also: MIN_VALUE MAX_VALUE POSITIVE_INFINITY NEGATIVE_INFINITY
UNKNOWN: specify where/how we are not in accord with the spec.
Double
as a short
.
Returns: the short value
Since: 1.1
Parameters: d the double value
Returns: the hexadecimal string representation
Since: 1.5
double
to a String
.
Floating-point string representation is fairly complex: here is a
rundown of the possible values. "[-]
" indicates that a
negative sign will be printed if the value (or exponent) is negative.
"<number>
" means a string of digits ('0' to '9').
"<digit>
" means a single digit ('0' to '9').Value of Double | String Representation |
---|---|
[+-] 0 | [-]0.0 |
Between [+-] 10-3 and 107, exclusive | [-]number.number |
Other numeric value | [-]<digit>.<number>
E[-]<number> |
[+-] infinity | [-]Infinity |
NaN | NaN |
.
and at least one digit printed after
it: even if the number is 3, it will be printed as 3.0
.
After the ".", all digits will be printed except trailing zeros. The
result is rounded to the shortest decimal number which will parse back
to the same double.
To create other output formats, use {@link java.text.NumberFormat}.
Parameters: d the double
to convert
Returns: the String
representing the double
UNKNOWN: specify where we are not in accord with the spec.
double
value of this Double
to a String
. This method calls
Double.toString(double)
to do its dirty work.
Returns: the String
representation
See Also: Double
Double
object wrapping the value.
In contrast to the Double
constructor, this method
may cache some values. It is used by boxing conversion.
Parameters: val the value to wrap
Returns: the Double
Since: 1.5
Double
object using the String
.
Parameters: s the String
to convert
Returns: the new Double
Throws: NumberFormatException if s
cannot be parsed as a
double
NullPointerException if s
is null.
See Also: parseDouble