Double类是原语类型Double的包装类,它包含几个方法来有效地处理Double值,比如将其转换为字符串表示,反之亦然。双重类的对象可以包含一个双重值。主要有两个构造函数来初始化双对象-
- 双人(双人b): 创建用提供的值初始化的双对象。
Syntax : public Double(Double d)Parameters :d : value with which to initialize
- 双精度(字符串s): 创建一个用字符串表示法提供的已解析双精度值初始化的双精度对象。默认基数为10。
Syntax : public Double(String s) throws NumberFormatExceptionParameters :s : string representation of the byte value Throws :NumberFormatException : If the string provided does not represent any double value.
方法:
1.toString(): 返回与双精度值对应的字符串。
Syntax : public String toString(double b)Parameters :b : double value for which string representation required.
2.valueOf(): 返回用提供的值初始化的双精度对象。
Syntax : public static Double valueOf(double b)Parameters :b : a double value
另一个重载函数valueOf(String val),提供与 新的Double(Double.parseDouble(val,10))
Syntax : public static Double valueOf(String s) throws NumberFormatExceptionParameters :s : a String object to be parsed as doubleThrows :NumberFormatException : if String cannot be parsed to a double value in given radix.
3.parseDouble(): 通过分析字符串返回双精度值。与valueOf()不同,因为它返回一个基本的双精度值,valueOf()返回双精度对象。
Syntax : public static double parseDouble(String val) throws NumberFormatExceptionParameters :val : String representation of double Throws :NumberFormatException : if String cannot be parsed to a double value in given radix.
4.字节值(): 返回与此双精度对象对应的字节值。
Syntax : public byte byteValue()
5.shortValue(): 返回与此双精度对象对应的短值。
Syntax : public short shortValue()
6.intValue(): 返回与此双精度对象对应的int值。
Syntax : public int intValue()
7.longValue(): 返回与此双精度对象对应的长值。
Syntax : public long longValue()
8.doubleValue(): 返回与此双精度对象对应的双精度值。
Syntax : public double doubleValue()
9.floatValue(): 返回与此双精度对象对应的浮点值。
Syntax : public float floatValue()
10.hashCode(): 返回与此双精度对象对应的哈希代码。
Syntax : public int hashCode()
11.伊斯南(): 如果所考虑的双精度对象不是数字,则返回true,否则返回false。
Syntax : public boolean isNaN()
如果不需要创建任何double对象,可以使用另一个静态方法isNaN(double-val)。它提供了与上述版本类似的功能。
Syntax : public static boolean isNaN(double val)Parameters :val : double value to check for
12.isInfinite(): 如果考虑的双对象非常大,则返回true,否则返回false。具体来说,任何超出0x7ff0000000000000L(正极)且低于0xfff0000000000000L(负极)的数字都是无穷大值。
Syntax : public boolean isInfinite()
如果不需要创建任何double对象,则可以使用另一种静态方法isInfinite(double val)。它提供了与上述版本类似的功能。
Syntax : public static boolean isInfinte(double val)Parameters :val : double value to check for
13.toHexString(): 返回参数双精度值的十六进制表示形式。
Syntax : public static String toHexString(double val)Parameters : val : double value to be represented as hex string
14.双ToLongbits(): 返回给定双参数的IEEE 754浮点“双格式”位布局。
Syntax : public static long doubleToLongBits(double val)Parameters :val : double value to convert
15.双TorawLongbits(): 返回给定双参数的IEEE 754浮点“双格式”位布局。它与之前的方法不同,因为它保留了Nan值。
Syntax : public static long doubleToRawLongBits(double val)Parameters :val : double value to convert
16.LongBitsToDouble(): 返回与参数的长位模式对应的双精度值。它与前两种方法相反。
Syntax : public static double LongBitsToDouble(long b)Parameters :b : long bit pattern
17.等于: 用于比较两个双重对象的相等性。如果两个对象包含相同的双精度值,则此方法返回true。仅当检查是否相等时才应使用。在所有其他情况下,应首选比较法。
Syntax : public boolean equals(Object obj)Parameters :obj : object to compare with
18.比较(): 用于比较两个双对象的数值相等。在比较两个双精度数值是否相等时,应使用此选项,因为它可以区分较小值和较大值。返回小于0,0的值,对于小于、等于和大于,返回大于0的值。
Syntax : public int compareTo(Double b)Parameters :b : Double object to compare with
19.比较(): 用于比较两个基本双精度值的数值相等性。由于它是一种静态方法,因此可以在不创建任何双重对象的情况下使用它。
Syntax : public static int compare(double x,double y)Parameters :x : double valuey : another double value
JAVA
// Java program to illustrate // various Double class methods // of java.lang class public class Double_test { public static void main(String[] args) { double b = 55.05 ; String bb = "45" ; // Construct two Double objects Double x = new Double(b); Double y = new Double(bb); // toString() System.out.println( "toString(b) = " + Double.toString(b)); // valueOf() // return Double object Double z = Double.valueOf(b); System.out.println( "valueOf(b) = " + z); z = Double.valueOf(bb); System.out.println( "ValueOf(bb) = " + z); // parseDouble() // return primitive double value double zz = Double.parseDouble(bb); System.out.println( "parseDouble(bb) = " + zz); System.out.println( "bytevalue(x) = " + x.byteValue()); System.out.println( "shortvalue(x) = " + x.shortValue()); System.out.println( "intvalue(x) = " + x.intValue()); System.out.println( "longvalue(x) = " + x.longValue()); System.out.println( "doublevalue(x) = " + x.doubleValue()); System.out.println( "floatvalue(x) = " + x.floatValue()); int hash = x.hashCode(); System.out.println( "hashcode(x) = " + hash); boolean eq = x.equals(y); System.out.println( "x.equals(y) = " + eq); int e = Double.compare(x, y); System.out.println( "compare(x,y) = " + e); int f = x.compareTo(y); System.out.println( "x.compareTo(y) = " + f); Double d = Double.valueOf( "1010.54789654123654" ); System.out.println( "isNaN(d) = " + d.isNaN()); System.out.println( "Double.isNaN(45.12452) = " + Double.isNaN( 45.12452 )); // Double.POSITIVE_INFINITY stores // the positive infinite value d = Double.valueOf(Double.POSITIVE_INFINITY + 1 ); System.out.println( "Double.isInfinite(d) = " + Double.isInfinite(d.doubleValue())); double dd = 10245.21452 ; System.out.println( "Double.toString(dd) = " + Double.toHexString(dd)); long double_to_long = Double.doubleToLongBits(dd); System.out.println( "Double.doubleToLongBits(dd) = " + double_to_long); double long_to_double = Double.longBitsToDouble(double_to_long); System.out.println( "Double.LongBitsToDouble(double_to_long) = " + long_to_double); } } |
输出:
toString(b) = 55.05valueOf(b) = 55.05ValueOf(bb) = 45.0parseDouble(bb) = 45.0bytevalue(x) = 55shortvalue(x) = 55intvalue(x) = 55longvalue(x) = 55doublevalue(x) = 55.05floatvalue(x) = 55.05hashcode(x) = 640540672x.equals(y) = falsecompare(x,y) = 1x.compareTo(y) = 1isNaN(d) = falseDouble.isNaN(45.12452) = falseDouble.isInfinite(d) = trueDouble.toString(dd) = 0x1.4029b7564302bp13Double.doubleToLongBits(dd) = 4666857980575363115Double.LongBitsToDouble(double_to_long) = 10245.21452
参考资料: 官方Java文档
本文由 Rishabh Mahrsee .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。