public final class Double extends Number implements Comparable<Double>
Double
值对象中的原始类型
double
。
Double
类型的对象包含一个字段的类型是
double
。
此外,该类提供了一个double
转换到String
和String
到double
的几种方法,以及其他的一些常量和方法可用于处理一个double
。
Modifier and Type | Field and Description |
---|---|
static int |
BYTES
用来表示一个
double 值的字节数。
|
static int |
MAX_EXPONENT
最大指数有限
double 变可能。
|
static double |
MAX_VALUE
恒持正向最大有限值
double 型,(2-2
- 52)·2
一千零二十三。
|
static int |
MIN_EXPONENT
最低指数归一化
double 变可能。
|
static double |
MIN_NORMAL
恒持正的最小正常值类型
double ,2
- 1022。
|
static double |
MIN_VALUE
恒持正的最小非零的值的类型
double ,2
- 1074。
|
static double |
NaN
恒持非数字(NaN)
double 型价值。
|
static double |
NEGATIVE_INFINITY
一个恒定的持有型
double 负无穷大。
|
static double |
POSITIVE_INFINITY
一个恒定的持有型
double 正无穷大。
|
static int |
SIZE
用来表示一个
double 值的比特数。
|
static 类<Double> |
TYPE
double 代表原始类型的
类 实例。
|
Constructor and Description |
---|
Double(double value)
构建了一个新分配的
Double 表示原始
double 论点。
|
Double(String s)
构建了一个新分配的
Double 表示式
double 字符串表示的浮点值。
|
Modifier and Type | Method and Description |
---|---|
byte |
byteValue()
作为一个窄化转换后
byte 返回该
Double 价值。
|
static int |
compare(double d1, double d2)
比较两个指定的
double 值。
|
int |
compareTo(Double anotherDouble)
比较两
Double 对象数值。
|
static long |
doubleToLongBits(double value)
返回根据IEEE 754浮点双格式”位布局表示指定的浮点值。
|
static long |
doubleToRawLongBits(double value)
返回根据IEEE 754浮点双格式”位布局表示指定的浮点值,保留非数字(NaN)值。
|
double |
doubleValue()
返回该对象的
double 价值
Double 。
|
boolean |
equals(Object obj)
将此对象与指定的对象进行比较。
|
float |
floatValue()
作为一个窄化转换后
float 返回该
Double 价值。
|
int |
hashCode()
返回该对象的哈希码
Double 。
|
static int |
hashCode(double value)
返回一个
double 值的哈希代码兼容
Double.hashCode() 。
|
int |
intValue()
作为一个窄化转换后,
int 返回该
Double 价值。
|
static boolean |
isFinite(double d)
返回
true 如果参数是一个有限的浮点值;否则返回
false (楠和无限的争论)。
|
boolean |
isInfinite()
返回
true 如果这
Double 值的幅度无限大,
false 否则。
|
static boolean |
isInfinite(double v)
返回
true 如果指定的数量级为无穷大,否则
false 。
|
boolean |
isNaN()
如果这
Double
true 返回值是一个非数字(NaN),
false 否则。
|
static boolean |
isNaN(double v)
返回
true 如果指定的数量是非数字(NaN)值,
false 否则。
|
static double |
longBitsToDouble(long bits)
返回对应于给定的点表示的
double 价值。
|
long |
longValue()
作为一个窄化转换后
long 返回该
Double 价值。
|
static double |
max(double a, double b)
返回大两
double 值如果通过调用
Math.max 。
|
static double |
min(double a, double b)
返回小两
double 值如果通过调用
Math.min 。
|
static double |
parseDouble(String s)
返回一个新的
double 初始化为指定的
String 所代表的值,通过类的方法进行
Double
valueOf 。
|
short |
shortValue()
作为一个窄化转换后
short 返回该
Double 价值。
|
static double |
sum(double a, double b)
增加了两
double 值按运算符。
|
static String |
toHexString(double d)
返回的
double 争论一个十六进制字符串表示形式。
|
String |
toString()
返回该对象的字符串表示
Double 。
|
static String |
toString(double d)
返回的字符串表示形式
double 论点。
|
static Double |
valueOf(double d)
返回表示指定的
double 价值
Double 实例。
|
static Double |
valueOf(String s)
返回一个
Double 对象持有
double 值由参数字符串
s 代表。
|
public static final double POSITIVE_INFINITY
double
正无穷大。它等于返回的值
Double.longBitsToDouble(0x7ff0000000000000L)
。
public static final double NEGATIVE_INFINITY
double
负无穷大。它等于返回的值
Double.longBitsToDouble(0xfff0000000000000L)
。
public static final double NaN
double
型价值。它相当于返回的值
Double.longBitsToDouble(0x7ff8000000000000L)
。
public static final double MAX_VALUE
double
型,(2-2
- 52)·2
一千零二十三。它等于十六进制浮点字面
0x1.fffffffffffffP+1023
也等于
Double.longBitsToDouble(0x7fefffffffffffffL)
。
public static final double MIN_NORMAL
double
,2
- 1022。它等于十六进制浮点字面
0x1.0p-1022
也等于
Double.longBitsToDouble(0x0010000000000000L)
。
public static final double MIN_VALUE
double
,2
- 1074。它等于十六进制浮点字面
0x0.0000000000001P-1022
也等于
Double.longBitsToDouble(0x1L)
。
public static final int MAX_EXPONENT
double
变可能。它等于返回的值
Math.getExponent(Double.MAX_VALUE)
。
public static final int MIN_EXPONENT
double
变可能。它等于返回的值
Math.getExponent(Double.MIN_NORMAL)
。
public static final int SIZE
double
值的比特数。
public static final int BYTES
double
值的字节数。
public Double(double value)
Double
表示原始
double
论点。
value
-被
Double
所代表的值。
public Double(String s) throws NumberFormatException
Double
表示式
double
字符串表示的浮点值。字符串转换为一个
double
价值似乎被
valueOf
方法。
s
-一个字符串转换为一个
Double
。
NumberFormatException
如果字符串不包含parsable数。
valueOf(java.lang.String)
public static String toString(double d)
double
论点。下面提到的所有字符都是ASCII字符。
NaN
”。-
”('\u002D'
);如果征阳性,结果中不会出现符号字符。至于大小nullm:
"Infinity"
表示;因此,正无穷大产生的结果"Infinity"
和负无穷大产生的结果"-Infinity"
。"0.0"
表示;因此,负零产生的结果"-0.0"
和正零产生的结果"0.0"
。.
”('\u002E'
),后跟一个或多个十进制数字的小数部分表示nullm。.
”('\u002E'
),其次是十进制数字占空一小数部分,其次是字母“E
”('\u0045'
),其次是nulln表示为十进制整数,如Integer.toString(int)
制作方法。double
相邻值为更多位数。那就是,假设nullx由该方法产生的有限个非零参数nulld小数表示的精确数学的价值。然后nulld必须就近nullx的
double
值;如果两
double
值均接近nullx,然后nulld必须成为他们中的一个最重要的点的nulld尾数必须
0
。
创建本地化的字符串表示的浮点值,使用子类的NumberFormat
。
d
-
double
要转换。
public static String toHexString(double d)
double
争论一个十六进制字符串表示形式。下面提到的所有字符都是ASCII字符。
NaN
”。-
”('\u002D'
);如果征阳性,结果中不会出现符号字符。至于大小nullm:
"Infinity"
表示;因此,正无穷大产生的结果"Infinity"
和负无穷大产生的结果"-Infinity"
。"0x0.0p0"
表示;因此,负零产生的结果"-0x0.0p0"
和正零产生的结果"0x0.0p0"
。double
值,子串来表示尾数和指数等。有效数字的字符表示"0x1."
后面跟随一个小写的十六进制表示的其余部分有效。在十六进制表示除非尾随零是所有数字是零删除,在这种情况下,一个单一的零使用。下一步,该指数是由"p"
后跟一个十进制数串的偏指数如电话产生Integer.toString
对指数值。double
值,有效数字的字符表示"0x0."
后跟一个十六进制表示的有效的休息是一部分。在十六进制表示尾随零删除。下一步,该指数是由"p-1022"
。注意,必须有一次有效的至少一个非零的数字。Floating-point Value | Hexadecimal String |
---|---|
1.0 |
0x1.0p0 |
-1.0 |
-0x1.0p0 |
2.0 |
0x1.0p1 |
3.0 |
0x1.8p1 |
0.5 |
0x1.0p-1 |
0.25 |
0x1.0p-2 |
Double.MAX_VALUE |
0x1.fffffffffffffp1023 |
Minimum Normal Value |
0x1.0p-1022 |
Maximum Subnormal Value |
0x0.fffffffffffffp-1022 |
Double.MIN_VALUE |
0x0.0000000000001p-1022 |
d
-
double
要转换。
public static Double valueOf(String s) throws NumberFormatException
Double
对象持有
double
值由参数字符串
s
代表。
如果s
是null
,然后NullPointerException
抛出。
s
领导和尾随空格字符被忽略。空格删除如果由String.trim()
方法;即ASCII控制字符的空间和删除。其余的s
应该构成nullfloatvalue的词法语法规则描述:
在空标志,nullfloatingpointliteral,nullhexnumeral,nullhexdigits,nullsignedinteger和nullfloattypesuffix是在 The Java™ Language Specification词汇结构部分的定义,除了强调不接受之间的数字。如果
- FloatValue:
- Signopt
NaN
- Signopt
Infinity
- Signopt FloatingPointLiteral
- Signopt HexFloatingPointLiteral
- SignedInteger
- HexFloatingPointLiteral:
- HexSignificand BinaryExponent FloatTypeSuffixopt
- HexSignificand:
- HexNumeral
- HexNumeral
.
0x
HexDigitsopt.
HexDigits0X
HexDigitsopt.
HexDigits
- BinaryExponent:
- BinaryExponentIndicator SignedInteger
- BinaryExponentIndicator:
p
P
s
没有一nullfloatvalue形式,然后
NumberFormatException
抛出。否则,
s
作为代表在平时的“计算机科学记数法”或作为一个确切的十六进制值精确的十进制值;这个确切的数值是那么的概念转换为一个“无限精确的“二进制值,然后绕过由IEEE 754浮点运算规则通常
double
最近圆式,包括保持一零值的符号。请注意,舍入到最接近的规则也意味着溢出和下溢的行为;如果
s
的精确值的幅度足够大(大于或等于(
MAX_VALUE
+
ulp(MAX_VALUE)
/ 2),圆
double
会导致无穷大,如果
s
的精确值的幅度足够小(小于或等于对
MIN_VALUE
/ 2),舍入的浮动将导致一零。最后,绕过一个代表这个
double
价值
Double
对象返回后。
解释本地化的字符串表示的浮点值,使用子类的NumberFormat
。
注意,尾随的格式说明符,来决定一个浮点字面值(1.0f
是float
价值;1.0d
是double
值),不影响该方法的结果。换言之,输入字符串的数值直接转换为目标浮点类型。转换的两步序列,字符串float
随后float
到double
,并不等同于将字符串转换直接double
。例如,在float
字面0.1f
等于double
价值0.10000000149011612
;的float
字面0.1f
比double
字面0.1
不同的数值。(数值0.1不能精确地表示在一个二进制浮点数中。)
为了避免无效的字符串有一个NumberFormatException
被调用此方法,下面的正则表达式可用于屏幕输入的字符串:
final String Digits = "(\\p{Digit}+)";
final String HexDigits = "(\\p{XDigit}+)";
// an exponent is 'e' or 'E' followed by an optionally
// signed decimal integer.
final String Exp = "[eE][+-]?"+Digits;
final String fpRegex =
("[\\x00-\\x20]*"+ // Optional leading "whitespace"
"[+-]?(" + // Optional sign character
"NaN|" + // "NaN" string
"Infinity|" + // "Infinity" string
// A decimal floating-point string representing a finite positive
// number without a leading sign has at most five basic pieces:
// Digits . Digits ExponentPart FloatTypeSuffix
//
// Since this method allows integer-only strings as input
// in addition to strings of floating-point literals, the
// two sub-patterns below are simplifications of the grammar
// productions from section 3.10.2 of
// The Java Language Specification.
// Digits ._opt Digits_opt ExponentPart_opt FloatTypeSuffix_opt
"((("+Digits+"(\\.)?("+Digits+"?)("+Exp+")?)|"+
// . Digits ExponentPart_opt FloatTypeSuffix_opt
"(\\.("+Digits+")("+Exp+")?)|"+
// Hexadecimal strings
"((" +
// 0[xX] HexDigits ._opt BinaryExponent FloatTypeSuffix_opt
"(0[xX]" + HexDigits + "(\\.)?)|" +
// 0[xX] HexDigits_opt . HexDigits BinaryExponent FloatTypeSuffix_opt
"(0[xX]" + HexDigits + "?(\\.)" + HexDigits + ")" +
")[pP][+-]?" + Digits + "))" +
"[fFdD]?))" +
"[\\x00-\\x20]*");// Optional trailing "whitespace"
if (Pattern.matches(fpRegex, myString))
Double.valueOf(myString); // Will not throw NumberFormatException
else {
// Perform suitable alternative action
}
s
-被解析的字符串。
Double
对象持有价值为代表的
String
论点。
NumberFormatException
如果字符串不包含parsable数。
public static Double valueOf(double d)
double
价值
Double
实例。如果一个新的
Double
实例是不需要的,这种方法一般应优先使用构造函数
Double(double)
,这种方法可能会产生显着更好的空间和时间,通过缓存经常请求的价值表现。
d
-双重价值。
d
Double
实例。
public static double parseDouble(String s) throws NumberFormatException
double
初始化为指定的
String
所代表的值,通过类的方法进行
Double
valueOf
。
s
-被解析的字符串。
double
价值。
NullPointerException
-如果字符串是空的
NumberFormatException
如果字符串不包含parsable
double
。
valueOf(String)
public static boolean isNaN(double v)
true
如果指定的数量是非数字(NaN)值,
false
否则。
v
-被测值。
true
如果参数的值
false
否则南。
public static boolean isInfinite(double v)
true
如果指定的数量级为无穷大,否则
false
。
v
-被测值。
true
如果参数的值为正无穷大和负无穷大;
false
否则。
public static boolean isFinite(double d)
true
如果参数是一个有限的浮点值;否则返回
false
(楠和无限的争论)。
d
-被测
double
价值
true
如果参数是一个有限的浮点值,
false
否则。
public boolean isNaN()
Double
true
返回值是一个非数字(NaN),
false
否则。
true
如果该对象表示的值
false
否则南。
public boolean isInfinite()
true
如果这
Double
值的幅度无限大,
false
否则。
true
如果该对象表示的值为正无穷大和负无穷大;
false
否则。
public String toString()
Double
。该对象表示的原始
double
值转换为字符串完全一样,如果一个参数的方法
toString
。
toString
方法重写,继承类
Object
String
表示。
toString(double)
public byte byteValue()
byte
返回该
Double
价值。
public short shortValue()
short
返回该
Double
价值。
shortValue
方法重写,继承类
Number
short
代表
double
价值
public int intValue()
int
返回该
Double
价值。
public long longValue()
long
返回该
Double
价值。
public float floatValue()
float
返回该
Double
价值。
floatValue
方法重写,继承类
Number
float
代表
double
价值
public double doubleValue()
double
价值
Double
。
doubleValue
方法重写,继承类
Number
double
价值
public int hashCode()
Double
。结果是独家的
long
整数表示的两半,正是由该方法制备的
doubleToLongBits(double)
,原始的
double
Double
对象表示的值。那是,哈希代码表达式的值:
(int)(v^(v>>>32))
哪里
v
的定义是:
long v = Double.doubleToLongBits(this.doubleValue());
hashCode
方法重写,继承类
Object
hash code
价值。
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public static int hashCode(double value)
double
值的哈希代码兼容
Double.hashCode()
。
value
价值-哈希
double
值的哈希码值。
public boolean equals(Object obj)
true
如果只有参数不
null
是
Double
对象代表一个
double
已为该对象表示的
double
相同的值。为了这个目的,两
double
值被认为是相同的当且仅当方法返回相同的值
doubleToLongBits(double)
long
适用于各。
请注意,在大多数情况下,对于类Double
两个实例,d1
和d2
,d1.equals(d2)
的价值是true
当且仅当
d1.doubleValue() == d2.doubleValue()
也有价值true
。然而,有两个例外:
d1
和d2
都代表Double.NaN
,然后equals
方法返回true
,即使Double.NaN==Double.NaN
有价值false
。d1
代表+0.0
而d2
代表-0.0
,反之亦然,这equal
测试有价值false
,即使+0.0==-0.0
有价值true
。equals
方法重写,继承类
Object
obj
-比较对象。
true
如果对象是相同的;
false
否则。
doubleToLongBits(double)
public static long doubleToLongBits(double value)
63位(比特是由面具0x8000000000000000L
选定)表示浮点数的牌。位62-52(是由面具0x7ff0000000000000L
选位)代表指数。位51-0(是由面具0x000fffffffffffffL
选位)代表有效数字(有时称为尾数)的浮点数。
如果该参数为正无穷大,结果是0x7ff0000000000000L
。
如果参数是负无穷大,结果是0xfff0000000000000L
。
如果参数是南,结果是0x7ff8000000000000L
。
在所有的情况下,其结果是一个long
整数,当给longBitsToDouble(long)
方法,将产生一个浮点值作为参数doubleToLongBits
相同(除南值折叠到一个单一的“典范”南值)。
value
-
double
精度浮点数。
public static long doubleToRawLongBits(double value)
63位(比特是由面具0x8000000000000000L
选定)表示浮点数的牌。位62-52(是由面具0x7ff0000000000000L
选位)代表指数。位51-0(是由面具0x000fffffffffffffL
选位)代表有效数字(有时称为尾数)的浮点数。
如果该参数为正无穷大,结果是0x7ff0000000000000L
。
如果参数是负无穷大,结果是0xfff0000000000000L
。
如果参数是南,结果是代表实际的NaN值的long
整数。不像doubleToLongBits
方法,doubleToRawLongBits
不崩溃的所有比特编码一南一个“规范”的南值。
在所有的情况下,其结果是一个long
整数,当给longBitsToDouble(long)
方法,将产生一个浮点值作为参数doubleToRawLongBits
相同。
value
-
double
精度浮点数。
public static double longBitsToDouble(long bits)
double
价值。参数是根据IEEE 754浮点双格式”位布局表示浮点值。
如果参数是0x7ff0000000000000L
,结果是正无穷大。
如果参数是0xfff0000000000000L
,结果是负无穷大。
如果参数是任意值的范围0x7ff0000000000001L
通过0x7fffffffffffffffL
或范围中的0xfff0000000000001L
通过0xffffffffffffffffL
,结果是一个南。没有IEEE 754浮点运算提供的java可以区分不同的位模式相同类型的两个NaN值之间。南截然不同的价值只是利用Double.doubleToRawLongBits
方法的区别。
在所有其他情况下,让空,努尔,和nullm三值可以从参数计算:
然后浮点结果等于零的数学表达·nullm·2 nulle-1075价值。int s = ((bits >> 63) == 0) ? 1 : -1; int e = (int)((bits >> 52) & 0x7ffL); long m = (e == 0) ? (bits & 0xfffffffffffffL) << 1 : (bits & 0xfffffffffffffL) | 0x10000000000000L;
请注意,此方法可能无法返回double
南具有完全相同的位模式的long
论点。IEEE 754的两种NaN的区分,安静和空信号南nan。两种南之间的差异通常不可见的java。在信号NaN运算转为安静的专辑有不同,但往往相似,位模式。然而,在一些处理器上,仅仅复制一个信令南也执行该转换。特别是,复制一个信令南返回它的调用方法可以执行这种转换。所以longBitsToDouble
可能无法返回double
与信令南位模式。因此,对于一些long
值,doubleToRawLongBits(longBitsToDouble(start))
可能空不平等start
。此外,这些特定的位模式表示信号NaN是依赖于平台;尽管南位模式,安静或信号,必须在上述南范围。
bits
任何
long
整数。
double
浮点值。
public int compareTo(Double anotherDouble)
Double
对象数值。有两种方法进行比较,通过这种方法不同于那些由java语言进行数值比较运算符(
<, <=, ==, >=, >
)应用原始
double
值:
Double.NaN
是通过这种方法被认为是等于和大于所有其他double
值(包括Double.POSITIVE_INFINITY
)。0.0d
是通过这种方法被认为是大于-0.0d
。Double
对象实行这一方法的空自然排序是空符合等于。
compareTo
接口
Comparable<Double>
anotherDouble
-
Double
进行比较。
0
如果
anotherDouble
数值上等于这
Double
;值小于
0
如果这
Double
数值小于
anotherDouble
;和一个值大于
0
如果这
Double
数值大于
anotherDouble
。
public static int compare(double d1, double d2)
double
值。返回的整型值的符号是整数,可以通过调用返回相同的:
新的双(D1)。CompareTo(新双(D2))
d1
-比较第一
double
d2
-比较二
double
0
如果
d1
数值等于
d2
;值小于
0
如果
d1
数值小于
d2
;和一个值大于
0
如果
d1
数值大于
d2
。
public static double sum(double a, double b)
double
值按运算符。
a
-第一个操作数
b
-第二个操作数
a
和
b
的总和
BinaryOperator
public static double max(double a, double b)
double
值如果通过调用
Math.max
。
a
-第一个操作数
b
-第二个操作数
a
和
b
大
BinaryOperator
public static double min(double a, double b)
double
值如果通过调用
Math.min
。
a
-第一个操作数
b
-第二个操作数
a
和
b
较小。
BinaryOperator
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.