package com.wonders.week01.bzl;
/**
* JDK1.7
* Double类
* (1)属于java.lang包下的
* (2)继承了Number类,实现了Comparable<Double>接口
* @author liyongyong
*
*/
public class DoubleTest {
public static void main(String[] args) {
Double double1 = new Double("1.0");
System.out.println(double1);
/**
* public static String toString(double d)
* 将double类型转换为String类型
*/
String s1 = double1.toString();
String s2 = Double.toString(12.345);
System.out.println(s1 + "==" + s2);//1.0==12.345
/**
* public static String toHexString(double d)
* 将double型转为十六进制的字符串形式
* 此方法是一个静态方法
*/
String hexDouble = Double.toHexString(12.3);
System.out.println("12.3的十六进制表示是 : " + hexDouble);
/**
* 将一个字符串(可以解析为数字类型)转为双精度的double类型
* 如果该字符串不可以解析为数值型就会抛出异常NumberFormatException数字格式化异常
*/
Double d = Double.valueOf("12.3");
System.out.println("字符串12.3转为双精度后的值是 : " + d);
/**
* 将double类型的数值包装为Double类型
*/
Double d1 = Double.valueOf(12.3);
System.out.println("double类型的12.3转为Double为 : " + d1);
/**
* 将字符串类型的数据解析为double类型,如果不能解析为double类型就会抛出异常NumberFormatException
*/
double d2 = Double.parseDouble("12.34");
System.out.println("字符串解析为基本数据类型double的值是 :" + d2);
/**
* 如果这个对象代表的值是NaN则返回true,否则返回false
*/
boolean f = Double.isNaN(12.3456788);
System.out.println("返回结果是否是NaN : " + f);
/**
* 如果测试值是正无穷或者负无穷,则返回true,否则返回false
*/
boolean f1 = Double.isInfinite(Double.POSITIVE_INFINITY);
System.out.println("所测值是否是正无穷或者负无穷 : " + f1);
/**
* 测试是否是正无穷或者负无穷,是则返回true,否则返回false
*/
Double double2 = new Double(Double.NEGATIVE_INFINITY);
boolean f2 = double2.isInfinite();
System.out.println("double2的值是正无穷或者负无穷 : " + f2);
/**
* 测试值是否是一个数字,不是则返回true,是则返回false
*/
Double double3 = new Double(Double.NaN);
boolean f3 = double3.isNaN();
System.out.println("double3的值是正无穷或者负无穷 : " + f3);
/**
* 将数值类型转化为字符串
*/
String s3 = double1.toString();
System.out.println("将数值类型转换为String的值是 : " + s3);
/**
* 将该数值类型转为byte形式
*/
byte b1 = double1.byteValue();
System.out.println("double转为byte后的值是 : " + b1);
Double double4 = new Double(129);
byte b2 = double4.byteValue();
System.out.println("129的byte表示是 : " + b2);
/**
* 将数值类型转为short类型
*/
short sh1 = double1.shortValue();
System.out.println("double转short的值是 : " + sh1);
/**
* 将数值的类型转为int类型
*/
int i1 = double1.intValue();
System.out.println("double转int的值是 : " + i1);
/**
* 将Double类型转为long
*/
long l1 = double1.longValue();
System.out.println("Double转为long的值是 : " + l1);
/**
* Double类型转为float
*/
float float1 = double1.floatValue();
System.out.println("Double类型转为float的值是 : " + float1);
/**
* Double类型转为double
*/
double dd1= double1.doubleValue();
System.out.println("Double转为double的值是 : " + dd1);
/**
* 返回Double类型的数值的哈希值
*/
int hashcode = double1.hashCode();
System.out.println("double1的哈希值是 : " + hashcode);
/**
* 返回表示浮点数的位
* 参数是一个double类型
* 静态方法,返回值是long类型
*/
long bits = Double.doubleToLongBits(double1);
System.out.print("返回值是 : " + bits);
long bits1 = Double.doubleToRawLongBits(double1);
System.out.print("返回值是 : " + bits1);
/**
* 返回具有相同位模式的双浮点值
* 参数是一个long类型
*/
long l2 = 10L;
double d8 = Double.longBitsToDouble(l2);
System.out.println("s8的返回值是 : "+ d8);
/**
* 两个Double类型比较,返回值是int类型
* 如果参数值等于Double值则返回0;如果参数值大于Double值则返回值小于0否则大于0
*/
Double double5 = new Double(12.3);
Double double6 = new Double(12.3);
int result1 = double1.compareTo(double5);
System.out.println("result1 = " + result1);
int result2 = double5.compareTo(double1);
int result3 = double5.compareTo(double6);
System.out.print("result3 = " + result3);
System.out.print("result2 =" + result2);
/**
* 比较两个double类型的数值大小,参数是double类型,返回值是int类型,方法是static
* 如果两个参数值相等,则返回0;
* 如果第一个参数值小于第二个参数值,则返回-1
* 如果第一个参数值大于第二个参数值,则返回1
*/
double ddd1 = 12.3;
double ddd2 = 12.3;
double ddd3 = 12.4;
int res1 = Double.compare(ddd1, ddd2);
System.out.println("res1 的值是: " + res1);
int res2 = Double.compare(ddd1, ddd3);
System.out.print("res2的值是 : " + res2);
int res3 = Double.compare(ddd3, ddd1);
System.out.print("res3的值是 : " + res3);
}
}
API学习包装类型Double
最新推荐文章于 2022-06-09 00:28:14 发布