java.lang
Class Double
- Comparable<T>, Serializable
Instances of class Double
represent primitive
double
values.
Additionally, this class provides various helper functions and variables
related to doubles.
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 | NEGATIVE_INFINITY - The value of a double representation -1.0/0.0, negative
infinity.
|
static double | NaN - All IEEE 754 values of NaN have the same value in Java.
|
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 | TYPE - The primitive type
double is represented by this
Class object.
|
Double(double value) - Create a
Double from the primitive double
specified.
|
Double(String s) - Create a
Double from the specified String .
|
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 .
|
boolean | isInfinite() - Return
true if the value of this Double
is the same as NEGATIVE_INFINITY or
POSITIVE_INFINITY , otherwise return false .
|
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 | isNaN() - Return
true if the value of this Double
is the same as NaN , otherwise return false .
|
static boolean | isNaN(double v) - Return
true if the double has the same
value 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.
|
String | toString() - Convert the
double value of this Double
to a String .
|
static String | toString(double d) - Convert the
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 .
|
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
MAX_VALUE
public static final double MAX_VALUE
The maximum positive value a double
may represent
is 1.7976931348623157e+308.
MIN_VALUE
public static final double MIN_VALUE
The minimum positive value a double
may represent
is 5e-324.
NEGATIVE_INFINITY
public static final double NEGATIVE_INFINITY
The value of a double representation -1.0/0.0, negative
infinity.
NaN
public static final double NaN
All IEEE 754 values of NaN have the same value in Java.
POSITIVE_INFINITY
public static final double POSITIVE_INFINITY
The value of a double representing 1.0/0.0, positive infinity.
SIZE
public static final int SIZE
The number of bits needed to represent a double
.
TYPE
public static final Class TYPE
The primitive type double
is represented by this
Class
object.
Double
public Double(double value)
Create a Double
from the primitive double
specified.
value
- the double
argument
Double
public Double(String s)
Create a Double
from the specified String
.
This method calls Double.parseDouble()
.
s
- the String
to convert
compare
public 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.
x
- the first double to comparey
- the second double to compare
compareTo
public int compareTo(Double d)
Compare two Doubles numerically by comparing their 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.
d
- the Double to compare
doubleToLongBits
public static long doubleToLongBits(double value)
Convert the double to the IEEE 754 floating-point "double format" bit
layout. Bit 63 (the most significant) is the sign bit, bits 62-52
(masked by 0x7ff0000000000000L) represent the exponent, and bits 51-0
(masked by 0x000fffffffffffffL) are the mantissa. This function
collapses all versions of NaN to 0x7ff8000000000000L. The result of this
function can be used as the argument to
Double.longBitsToDouble(long)
to obtain the original
double
value.
value
- the double
to convert
doubleToRawLongBits
public static long doubleToRawLongBits(double value)
Convert the double to the IEEE 754 floating-point "double format" bit
layout. Bit 63 (the most significant) is the sign bit, bits 62-52
(masked by 0x7ff0000000000000L) represent the exponent, and bits 51-0
(masked by 0x000fffffffffffffL) are the mantissa. This function
leaves NaN alone, rather than collapsing to a canonical value. The
result of this function can be used as the argument to
Double.longBitsToDouble(long)
to obtain the original
double
value.
value
- the double
to convert
equals
public boolean equals(Object obj)
Returns
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())
.
- equals in interface Object
obj
- the object to compare
- whether the objects are semantically equal
hashCode
public int hashCode()
Return a hashcode representing this Object. Double
's hash
code is calculated by:
long v = Double.doubleToLongBits(doubleValue());
int hash = (int)(v^(v>>32))
.
- hashCode in interface Object
isInfinite
public boolean isInfinite()
Return true
if the value of this Double
is the same as NEGATIVE_INFINITY
or
POSITIVE_INFINITY
, otherwise return false
.
- whether this
Double
is (-/+) infinity
isInfinite
public static boolean isInfinite(double v)
Return true
if the double
has a value
equal to either NEGATIVE_INFINITY
or
POSITIVE_INFINITY
, otherwise return false
.
v
- the double
to compare
- whether the argument is (-/+) infinity.
isNaN
public boolean isNaN()
Return true
if the value of this Double
is the same as NaN
, otherwise return false
.
- whether this
Double
is NaN
isNaN
public static boolean isNaN(double v)
Return true
if the double
has the same
value as NaN
, otherwise return false
.
v
- the double
to compare
- whether the argument is
NaN
.
longBitsToDouble
public static double longBitsToDouble(long bits)
Convert the argument in IEEE 754 floating-point "double format" bit
layout to the corresponding float. Bit 63 (the most significant) is the
sign bit, bits 62-52 (masked by 0x7ff0000000000000L) represent the
exponent, and bits 51-0 (masked by 0x000fffffffffffffL) are the mantissa.
This function leaves NaN alone, so that you can recover the bit pattern
with Double.doubleToRawLongBits(double)
.
bits
- the bits to convert
- the
double
represented by the bits
parseDouble
public static double parseDouble(String str)
Parse the specified
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
NumberFormat
.
str
- the String
to convert
toHexString
public static String toHexString(double d)
Convert a double value to a hexadecimal string. This converts as
follows:
- A NaN value is converted to the string "NaN".
- Positive infinity is converted to the string "Infinity".
- Negative infinity is converted to the string "-Infinity".
- For all other values, the first character of the result is '-'
if the value is negative. This is followed by '0x1.' if the
value is normal, and '0x0.' if the value is denormal. This is
then followed by a (lower-case) hexadecimal representation of the
mantissa, with leading zeros as required for denormal values.
The next character is a 'p', and this is followed by a decimal
representation of the unbiased exponent.
- the hexadecimal string representation
toString
public String toString()
Convert the double
value of this Double
to a String
. This method calls
Double.toString(double)
to do its dirty work.
- toString in interface Object
- the
String
representation
toString
public static String toString(double d)
Convert the
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 |
Yes, negative zero
is a possible value. Note that there is
always a
.
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
NumberFormat
.
d
- the double
to convert
- the
String
representing the double
valueOf
public static Double valueOf(double val)
Returns a Double
object wrapping the value.
In contrast to the Double
constructor, this method
may cache some values. It is used by boxing conversion.
valueOf
public static Double valueOf(String s)
Create a new Double
object using the String
.
s
- the String
to convert
Double.java -- object wrapper for double
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.