- java.lang.Object
-
- java.lang.Number
-
- java.lang.Double
-
- All Implemented Interfaces:
-
Serializable
,Comparable<Double>
public final class Double extends Number implements Comparable<Double>
Double
类包装一个对象中的基元类型double
的值。 类型为Double
的对象包含一个单一字段,其类型为double
。此外,该类还提供了多种将
double
转换为String
和String
转换为double
,以及处理double
时其他常量和方法有用的方法。- 从以下版本开始:
- 1.0
- 另请参见:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
BYTES
用于表示double
值的字节数。static int
MAX_EXPONENT
最大指数有限的double
变量可能有。static double
MAX_VALUE
的常量保持型的最大正的有限值double
,(2-2 -52)A·2 1023。static int
MIN_EXPONENT
最小指数归一化double
变量可能有。static double
MIN_NORMAL
一个常数保持double
类型的最小正正常值,2 -1022 。static double
MIN_VALUE
一个常数保持最小的正非零值,类型为double
-1074 。static double
NaN
一个常数,持有double
类型的非数字(NaN)值。static double
NEGATIVE_INFINITY
持有double
型的无穷大的double
。static double
POSITIVE_INFINITY
持有double
型正无穷大的double
。static int
SIZE
用于表示double
值的位数。static Class<Double>
TYPE
Class
实例表示原始类型double
。
-
构造方法摘要
构造方法 Constructor 描述 Double(double value)
已过时。很少使用这个构造函数。 静态工厂valueOf(double)
通常是一个更好的选择,因为它可能产生明显更好的空间和时间性能。Double(String s)
已过时。很少使用这个构造函数。 使用parseDouble(String)
将字符串转换为double
原语,或使用valueOf(String)
将字符串转换为Double
对象。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 byte
byteValue()
返回此值Double
为byte
的基本收缩转换后。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()
在缩小原始转换后,返回Double
的值作为float
。int
hashCode()
返回此Double
对象的哈希码。static int
hashCode(double value)
返回一个double
值的哈希码; 兼容Double.hashCode()
。int
intValue()
在缩小原始转换后,返回Double
的值作为int
。static boolean
isFinite(double d)
如果参数是有限浮点值,则返回true
; 返回false
否则(对于NaN和无穷大参数)。boolean
isInfinite()
返回true
如果这个Double
值是无限大的,否则为false
。static boolean
isInfinite(double v)
返回true
如果指定的数是无限大,false
否则。boolean
isNaN()
返回true
如果此Double
值是不是非数字(NAN),false
否则。static boolean
isNaN(double v)
返回true
如果指定的号码是一个不一个数字(NaN)值,false
否则。static double
longBitsToDouble(long bits)
返回与给定位表示相对应的double
值。long
longValue()
返回此值Double
为long
的基本收缩转换后。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
,如通过执行valueOf
类的方法Double
。short
shortValue()
返回此值Double
为short
的基本收缩转换后。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
对象,该对象保存由参数字符串s
表示的double
值。
-
-
-
字段详细信息
-
POSITIVE_INFINITY
public static final double POSITIVE_INFINITY
持有double
类型的正无穷大的double
。 它等于Double.longBitsToDouble(0x7ff0000000000000L)
返回的值。- 另请参见:
- Constant Field Values
-
NEGATIVE_INFINITY
public static final double NEGATIVE_INFINITY
持有double
类型的负无穷大的double
。 它等于由Double.longBitsToDouble(0xfff0000000000000L)
返回的值。- 另请参见:
- Constant Field Values
-
NaN
public static final double NaN
一个持有非数字(NaN)值的常数,类型为double
。 相当于由Double.longBitsToDouble(0x7ff8000000000000L)
返回的值。- 另请参见:
- Constant Field Values
-
MAX_VALUE
public static final double MAX_VALUE
的常量保持型的最大正的有限值double
,(2-2 -52)A·2 1023。 它等于十六进制浮点0x1.fffffffffffffP+1023
,也等于Double.longBitsToDouble(0x7fefffffffffffffL)
。- 另请参见:
- Constant Field Values
-
MIN_NORMAL
public static final double MIN_NORMAL
常数保持double
类型的最小正正常值,2 -1022 。 它等于十六进制浮点0x1.0p-1022
,也等于Double.longBitsToDouble(0x0010000000000000L)
。- 从以下版本开始:
- 1.6
- 另请参见:
- Constant Field Values
-
MIN_VALUE
public static final double MIN_VALUE
一个常数保持最小的正非零值,类型为double
-1074 。 它等于十六进制浮点0x0.0000000000001P-1022
,也等于Double.longBitsToDouble(0x1L)
。- 另请参见:
- Constant Field Values
-
MAX_EXPONENT
public static final int MAX_EXPONENT
最大指数有限的double
变量可能有。 它等于Math.getExponent(Double.MAX_VALUE)
返回的值。- 从以下版本开始:
- 1.6
- 另请参见:
- Constant Field Values
-
MIN_EXPONENT
public static final int MIN_EXPONENT
最小指数归一化double
变量可能有。 它等于Math.getExponent(Double.MIN_NORMAL)
返回的值。- 从以下版本开始:
- 1.6
- 另请参见:
- Constant Field Values
-
SIZE
public static final int SIZE
用于表示double
值的位数。- 从以下版本开始:
- 1.5
- 另请参见:
- Constant Field Values
-
BYTES
public static final int BYTES
用于表示double
值的字节数。- 从以下版本开始:
- 1.8
- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
Double
@Deprecated(since="9") public Double(double value)
构造一个新分配的Double
对象,该对象表示基元double
参数。- 参数
-
value
- 要由Double
表示的值。
-
Double
@Deprecated(since="9") public Double(String s) throws NumberFormatException
构造一个新分配的Double
对象,该对象表示由字符串表示的类型为double
的浮点值。 该字符串转换为double
值,如同通过valueOf
方法一样。- 参数
-
s
- 要转换为Double
的字符串。 - 异常
-
NumberFormatException
- 如果字符串不包含可解析的数字。
-
-
方法详细信息
-
toString
public static String toString(double d)
返回double
参数的字符串表示形式。 下面提到的所有字符都是ASCII字符。- 如果参数是NaN,结果是字符串“
NaN
”。 - 否则,结果是表示参数的符号和大小(绝对值)的字符串。 如果符号为负,则结果的第一个字符为“
-
”('\u002D'
); 如果符号为正,则结果中不会出现符号字符。 至于幅度m :- 如果m是无穷大,它由字符
"Infinity"
表示; 因此,正无穷大产生结果"Infinity"
和负无穷大产生结果"-Infinity"
。 - 如果m为零,则由字符
"0.0"
表示; 因此,负零产生结果"-0.0"
,正零产生结果"0.0"
。 - 如果m大于或等于10 -3但小于10 7 ,则表示为m的整数部分,以十进制形式表示,不带前导零,后跟“
.
”('\u002E'
),后跟一个或多个表示m的小数部分的十进制数字。 - 如果m小于10 -3或大于或等于10 7 ,则表示为所谓的“计算机科学记数法”。 设n是唯一的整数,使得10N的‰¤ 米 <10 N + 1; 然后让一个是m的精确算术商和10 牛顿 ,使1个≤ 一个 <10.然后将大小被表示为a的整数部分,作为一个单一的十进制数字,后跟“
.
”('\u002E'
),再后面是表示一个小数部分十进制数字,后面跟有字母“E
”('\u0045'
),接着为十进制整数n的表示,作为由该方法制备Integer.toString(int)
。
- 如果m是无穷大,它由字符
double
相邻值所需要的数量之外,还需要数量多的数字。 也就是说,假设x是由用于有限非零参数d的该方法生成的十进制表示形式表示的精确数学值。 那么d必须是最接近x的double
值。 或者如果两个double
值同样接近x,那么d必须它们中的一个和d的有效数的至少显著位必须为0
。要创建浮点值的本地化字符串表示,请使用
NumberFormat
的子类。- 参数
-
d
- 要转换的double
。 - 结果
- 参数的字符串表示形式。
- 如果参数是NaN,结果是字符串“
-
toHexString
public static String toHexString(double d)
返回double
参数的十六进制字符串表示形式。 下面提到的所有字符都是ASCII字符。- 如果参数是NaN,结果是字符串“
NaN
”。 - 否则,结果是一个表示参数的符号和大小的字符串。 如果符号为负,则结果的第一个字符为“
-
”('\u002D'
); 如果符号为正,则结果中不会出现符号字符。 至于幅度m :- 如果m是无穷大,它由字符串
"Infinity"
表示; 因此,正无穷大产生结果"Infinity"
和负无穷大产生结果"-Infinity"
。 - 如果m为零,则由字符串
"0x0.0p0"
表示; 因此,负零产生结果"-0x0.0p0"
,正零产生结果"0x0.0p0"
。 - 如果m是具有归一化表示的
double
值,则使用子字符串来表示有效double
和指数字段。 有效"0x1."
由字符"0x1."
表示,后面是有效"0x1."
的其余部分的小写十六进制表示,作为分数。 删除十六进制表示中的尾随零,除非所有数字都为零,在这种情况下使用单个零。 接下来,指数由"p"
表示,后跟无偏差指数的十进制字符串,就像通过对指数值的调用Integer.toString
产生的。 - 如果m是具有亚正态表示的
double
值,则有效"0x0."
由字符"0x0."
表示,后面是有效"0x0."
的其余部分的十六进制表示作为分数。 删除十六进制表示中的尾随零。 接下来,指数由"p-1022"
表示。 请注意,在异常有效位数中必须至少有一个非零数字。
- 如果m是无穷大,它由字符串
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
。 - 结果
- 参数的十六进制字符串表示形式。
- 从以下版本开始:
- 1.5
- 如果参数是NaN,结果是字符串“
-
valueOf
public static Double valueOf(String s) throws NumberFormatException
返回一个Double
对象,该对象保存由参数字符串s
表示的double
值。如果
s
为null
,则抛出NullPointerException
。s
中的前导和尾随空格字符s
被忽略。 空格如String.trim()
方法被删除; 也就是说,ASCII空间和控制字符都被删除。s
的其余部分应构成一个FloatValue ,如词法语法规则所述:- FloatValue:
-
Signopt
NaN
-
Signopt
Infinity
- Signopt FloatingPointLiteral
- Signopt HexFloatingPointLiteral
- SignedInteger
- HexFloatingPointLiteral:
- HexSignificand BinaryExponent FloatTypeSuffixopt
- HexSignificand:
- HexNumeral
-
HexNumeral
.
-
0x
HexDigitsopt.
HexDigits -
0X
HexDigitsopt.
HexDigits
- BinaryExponent:
- BinaryExponentIndicator SignedInteger
- BinaryExponentIndicator:
-
p
-
P
s
不具有的floatValue的形式,那么NumberFormatException
被抛出。 否则,s
被认为是在通常的“计算机科学符号”中表示精确的十进制值,或者作为精确的十六进制值; 这个精确的数值然后在概念上转换为“无限精确”二进制值,然后通过IEEE 754浮点运算的通常的圆到最近的规则进行四舍五入,形式为double
,其包括保留零值的符号。 注意,round-to-nearest规则也意味着溢出和下溢行为; 如果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
- 如果字符串不包含可解析的数字。
-
valueOf
public static Double valueOf(double d)
返回一个表示double
值的Double
实例。 如果不需要新的Double
实例,则该方法通常优先于构造函数Double(double)
使用 ,因为该方法可能通过缓存经常请求的值而产生明显更好的空间和时间性能。- 参数
-
d
- 一个双重值。 - 结果
-
一个
Double
实例,代表d
。 - 从以下版本开始:
- 1.5
-
parseDouble
public static double parseDouble(String s) throws NumberFormatException
返回一个新double
初始化为指定的代表的值String
,如通过执行valueOf
类的方法Double
。- 参数
-
s
- 要解析的字符串。 - 结果
-
由字符串参数表示的
double
值。 - 异常
-
NullPointerException
- 如果字符串为空 -
NumberFormatException
- 如果字符串不包含可解析的double
。 - 从以下版本开始:
- 1.2
- 另请参见:
-
valueOf(String)
-
isNaN
public static boolean isNaN(double v)
返回true
如果指定的号码是一个不一个数字(NaN)值,false
否则。- 参数
-
v
- 要测试的值。 - 结果
-
true
如果参数的值为NaN;false
否则。
-
isInfinite
public static boolean isInfinite(double v)
返回true
如果指定的数是无限大,false
否则。- 参数
-
v
- 要测试的值。 - 结果
-
true
如果参数的值是正无穷大或负无穷大; 否则为false
。
-
isFinite
public static boolean isFinite(double d)
如果参数是有限浮点值,则返回true
; 返回false
(对于NaN和无穷大参数)。- 参数
-
d
- 要测试的double
值 - 结果
-
true
如果参数是一个有限浮点值,否则为false
。 - 从以下版本开始:
- 1.8
-
isNaN
public boolean isNaN()
返回true
如果此Double
值是不是非数字(NAN),false
否则。- 结果
-
true
如果该对象表示的值为NaN; 否则为false
。
-
isInfinite
public boolean isInfinite()
如果这个Double
值是无限大的,则返回true
,否则为false
。- 结果
-
true
如果由该对象表示的值是正无穷大或负无穷大; 否则为false
。
-
toString
public String toString()
返回此Double
对象的字符串表示形式。 由该对象表示的原语double
值将转换为完全一样的字符串,如同通过一个参数的方法toString
。- 重写:
-
toString
在Object
- 结果
-
这个对象的
String
表示。 - 另请参见:
-
toString(double)
-
byteValue
public byte byteValue()
返回此值Double
为byte
的基本收缩转换后。
-
shortValue
public short shortValue()
返回此值Double
为short
的基本收缩转换后。- 重写:
-
shortValue
在Number
- 结果
-
由该对象表示的
double
值转换为short
型 - 从以下版本开始:
- 1.1
- See The Java™ Language Specification:
- 5.1.3缩小原始转换
-
intValue
public int intValue()
在缩小原始转换后,返回Double
的值作为int
。
-
longValue
public long longValue()
返回此值Double
为long
的基本收缩转换后。
-
floatValue
public float floatValue()
返回此值Double
为float
的基本收缩转换后。- Specified by:
-
floatValue
在Number
- 结果
-
该对象代表的
double
值转换为float
型 - 从以下版本开始:
- 1.0
- See The Java™ Language Specification:
- 5.1.3缩小原始转换
-
doubleValue
public double doubleValue()
返回此Double
对象的double
值。- Specified by:
-
doubleValue
在Number
- 结果
-
由该对象表示的
double
值
-
hashCode
public int hashCode()
返回此Double
对象的哈希码。 结果是long
整数位表示的两半的异或,与由Double
对象表示的原语double
值的方法doubleToLongBits(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)
-
hashCode
public static int hashCode(double value)
返回一个double
值的哈希码; 兼容Double.hashCode()
。- 参数
-
value
- 哈希值 - 结果
-
一个
double
值的哈希码值。 - 从以下版本开始:
- 1.8
-
equals
public boolean equals(Object obj)
将此对象与指定对象进行比较。 其结果是true
当且仅当该参数不是null
并且是Double
对象,它表示一个double
具有相同的值作为double
该对象表示。 为此,当且仅当方法doubleToLongBits(double)
在应用于每个值时返回相同的long
值时,两个double
值被认为是相同的。请注意,在大多数情况下,类的两个实例
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)
- 如果
-
doubleToLongBits
public static long doubleToLongBits(double value)
根据IEEE 754浮点“双格式”位布局返回指定浮点值的表示。位63(由掩码
0x8000000000000000L
选择的位)表示浮点数的符号。 位62-52(由掩码0x7ff0000000000000L
选择的位)表示指数。 位51-0(由掩码0x000fffffffffffffL
选择的位)表示0x000fffffffffffffL
的有效数(有时称为尾数)。如果参数为无穷大,结果为
0x7ff0000000000000L
。如果参数为负无穷大,则结果为
0xfff0000000000000L
。如果参数是NaN,结果是
0x7ff8000000000000L
。在所有情况下,结果是一个
long
整数,当给予longBitsToDouble(long)
方法时,将产生与doubleToLongBits
的参数相同的浮点值(除了所有NaN值都折叠为单个“规范”NaN值)。- 参数
-
value
- 一个double
精度浮点数。 - 结果
- 表示浮点数的位。
-
doubleToRawLongBits
public static long doubleToRawLongBits(double value)
根据IEEE 754浮点“双格式”位布局返回指定浮点值的表示,保留非数字(NaN)值。位63(由掩码
0x8000000000000000L
选择的位)表示浮点数的符号。 位62-52(由掩码0x7ff0000000000000L
选择的位)表示指数。 位51-0(由掩码0x000fffffffffffffL
选择的位)表示0x000fffffffffffffL
的有效数(有时称为尾数)。如果参数为无穷大,结果为
0x7ff0000000000000L
。如果参数为负无穷大,则结果为
0xfff0000000000000L
。如果参数是NaN,则结果是表示实际NaN值的
long
整数。 与doubleToLongBits
方法不同,doubleToRawLongBits
不会将编码NaN的所有位模式折叠到单个“规范”NaN值。在所有情况下,结果是一个
long
整数,当给予longBitsToDouble(long)
方法时,将产生一个与doubleToRawLongBits
的参数相同的浮点值。- 参数
-
value
- 一个double
精度浮点数。 - 结果
- 表示浮点数的位。
- 从以下版本开始:
- 1.3
-
longBitsToDouble
public static double longBitsToDouble(long bits)
返回与给定位表示相对应的double
值。 该参数被认为是根据IEEE 754浮点“双格式”位布局的浮点值的表示。如果参数为
0x7ff0000000000000L
,结果为无穷大。如果参数为
0xfff0000000000000L
,结果为负无穷大。如果参数在上述范围内的任何值
0x7ff0000000000001L
通过0x7fffffffffffffffL
或在范围0xfff0000000000001L
通过0xffffffffffffffffL
,结果是NaN。 Java提供的IEEE 754浮点运算不能用不同的位模式区分同一类型的两个NaN值。 NaN的不同值只能通过使用Double.doubleToRawLongBits
方法区分开来。在所有其他情况下,令s , e和m是可以从参数计算的三个值:
int s = ((bits >> 63) == 0) ? 1 : -1; int e = (int)((bits >> 52) & 0x7ffL); long m = (e == 0) ? (bits & 0xfffffffffffffL) << 1 : (bits & 0xfffffffffffffL) | 0x10000000000000L;
请注意,该方法可能无法返回与
long
参数完全相同的位模式的double
NaN。 IEEE 754区分了两种NaN,安静的NaN和信号NaN 。 两种NaN之间的区别通常在Java中不可见。 信号NaN的算术运算将它们变成具有不同但通常相似的位模式的安静的NaN。 然而,在某些处理器上,仅仅复制信号NaN也执行该转换。 特别地,复制信令NaN以将其返回到调用方法可以执行该转换。 所以longBitsToDouble
可能无法返回一个double
的信号NaN位模式。 因此,对于long
值,doubleToRawLongBits(longBitsToDouble(start))
可能不等于start
。 此外,哪些特定位模式表示信令NaN是平台依赖的; 尽管所有NaN位模式,安静或信令都必须位于上面确定的NaN范围内。- 参数
-
bits
- 任何long
整数。 - 结果
-
double
具有相同位模式的浮点值。
-
compareTo
public int compareTo(Double anotherDouble)
以数字比较两个Double
对象。 使用此方法进行比较的方法与应用于原语double
值时由Java语言数值比较运算符(<, <=, ==, >=, >
)执行的比较有两种方式:-
Double.NaN
被认为是等于自己和大于所有其他double
值(包括Double.POSITIVE_INFINITY
)。 -
0.0d
被这种方法认为大于-0.0d
。
Double
受此方法影响的对象是与equals一致 。- Specified by:
-
compareTo
在接口Comparable<Double>
- 参数
-
anotherDouble
- 要比较的Double
。 - 结果
-
值
0
如果anotherDouble
在数字上等于这个Double
; 一个值小于0
如果这个Double
在数字上小于anotherDouble
; 和大于一个值0
,如果这Double
在数值上大于anotherDouble
。 - 从以下版本开始:
- 1.2
-
-
compare
public static int compare(double d1, double d2)
比较两个指定的double
值。 返回的整数值的符号与调用返回的整数的符号相同:new Double(d1).compareTo(new Double(d2))
- 参数
-
d1
- 第一个double
进行比较 -
d2
- 第二个double
进行比较 - 结果
-
值
0
如果d1
在数字上等于d2
; 的值小于0
如果d1
是数值上小于d2
; 且大于值0
如果d1
在数值上大于d2
。 - 从以下版本开始:
- 1.4
-
sum
public static double sum(double a, double b)
按照+运算符将两个double
值一起添加。- 参数
-
a
- 第一个操作数 -
b
- 第二个操作数 - 结果
-
总和
a
和b
- 从以下版本开始:
- 1.8
- 另请参见:
-
BinaryOperator
- See The Java™ Language Specification:
- 4.2.4浮点运算
-
max
public static double max(double a, double b)
返回两个double
值中的较大值,如同通过调用Math.max
一样 。- 参数
-
a
- 第一个操作数 -
b
- 第二个操作数 - 结果
-
较大的
a
和b
- 从以下版本开始:
- 1.8
- 另请参见:
-
BinaryOperator
-
min
public static double min(double a, double b)
返回两个double
中的较小值,就像调用Math.min
一样 。- 参数
-
a
- 第一个操作数 -
b
- 第二个操作数 - 结果
-
较小的
a
和b
。 - 从以下版本开始:
- 1.8
- 另请参见:
-
BinaryOperator
-
-