Java Double类的用法(附带实例)
Java 中的 Double 类和 Float 类分别封装的是基本类型 double 和 float。由于它们都是 Number 类的子类,并且都是对浮点数进行操作的,因此它们的常用方法基本相同。本节将对 Double 类进行讲解。
Double 类在对象中包装一个基本类型为 double 的值,每个 Double 类的对象都包含一个 double 类型的字段。
Double 类还提供多个方法,可以将 double 类型转换为 String 类型,将 String 类型转换为 double 类型,也提供了其他一些处理 double 类型时有用的常量和方法。Double 类的常用方法如下表所示:
下面通过一个实例来演示 Double 类的常用方法的使用。创建一个 DoubleDemo 类,首先使用 Double 类的 valueOf() 方法创建一个 Double 对象,然后使用 Double 类的常用方法对该对象进行操作,并查看它们的显示结果。
Double 类还提供了以下常量:
例如:
Double 类在对象中包装一个基本类型为 double 的值,每个 Double 类的对象都包含一个 double 类型的字段。
Double 类还提供多个方法,可以将 double 类型转换为 String 类型,将 String 类型转换为 double 类型,也提供了其他一些处理 double 类型时有用的常量和方法。Double 类的常用方法如下表所示:
方法 | 功能描述 |
---|---|
valueOf(String str) | 返回保存用参数字符串 str 表示的 double 值的 Double 对象 |
parseDouble(String s) | 返回一个新的 double 值,该值被初始化为用指定 String 表示的值,与 valueOf()方法一样 |
doubleValue() | 以 double 形式返回此 Double 对象 |
isNaN() | 如果此 double 值是非数字(NaN)值,则返回 true;否则返回 false |
intValue() | 以 int 形式返回 double 值 |
byteValue() | 以 byte 形式返回 Double 对象值(通过强制转换) |
longValue() | 以 long 形式返回此 double 的值(通过强制转换为 long 类型) |
compareTo(Double d) | 对两个 Double 对象的数值进行比较。如果两个值相等,则返回 0;如果调用对象的数值小于 d 的数值,则返回负值;如果调用对象的数值大于 d 的值,则返回正值 |
equals(Object obj) | 将此对象与指定的对象进行比较 |
toString() | 返回此 Double 对象的字符串表示形式 |
toHexString(double d) | 返回 double 参数的十六进制字符串表示形式 |
下面通过一个实例来演示 Double 类的常用方法的使用。创建一个 DoubleDemo 类,首先使用 Double 类的 valueOf() 方法创建一个 Double 对象,然后使用 Double 类的常用方法对该对象进行操作,并查看它们的显示结果。
public class DoubleDemo { public static void main(String[] args) { Double dNum = Double.valueOf("3.14"); //创建一个 Double 对象 //判断是否为非数字值 System.out.println("3.14 是否为非数字值: " + Double.isNaN(dNum.doubleValue())); System.out.println("3.14 转换为 int 值为: " + dNum.intValue()); //转换为 int 类型 //判断大小 System.out.println("值为 3.14 的 Double 对象与 3.14 的比较结果: " + dNum.equals(3.14)); //转换为十六进制 System.out.println("3.14 的十六进制表示为: " + Double.toHexString(dNum)); } }运行结果如下:
3.14是否为非数字值:false
3.14转换为int值为:3
值为3.14的Double对象与3.14的比较结果:true
3.14的十六进制表示为:0x1.91eb851eb851fp1
Double 类还提供了以下常量:
- MAX_EXPONENT:返回 int 值,表示有限 double 变量可能具有的最大指数;
- MIN_EXPONENT:返回 int 值,表示标准化 double 变量可能具有的最小指数;
- NEGATIVE_INFINITY:返回 double 值,表示保存 double 类型的负无穷大值的常量;
- POSITIVE_INFINITY:返回 double 值,表示保存 double 类型的正无穷大值的常量。
例如:
public class DoubleConstants { public static void main(String[] args) { // 获取有限 double 变量可能具有的最大指数 int maxExponent = Double.MAX_EXPONENT; System.out.println("有限 double 变量可能具有的最大指数是: " + maxExponent); // 获取标准化 double 变量可能具有的最小指数 int minExponent = Double.MIN_EXPONENT; System.out.println("标准化 double 变量可能具有的最小指数是: " + minExponent); // 获取 double 类型的负无穷大值 double negativeInfinity = Double.NEGATIVE_INFINITY; System.out.println("double 类型的负无穷大值是: " + negativeInfinity); // 获取 double 类型的正无穷大值 double positiveInfinity = Double.POSITIVE_INFINITY; System.out.println("double 类型的正无穷大值是: " + positiveInfinity); // 演示无穷大值的使用 System.out.println("1.0 除以 0 的结果是: " + (1.0 / 0)); // 正无穷大 System.out.println("-1.0 除以 0 的结果是: " + (-1.0 / 0)); // 负无穷大 // 演示最大和最小指数的使用 double maxDouble = Double.MAX_VALUE; System.out.println("double 类型能表示的最大值是: " + maxDouble); double minDouble = Double.MIN_VALUE; System.out.println("double 类型能表示的最小值是: " + minDouble); } }运行结果为:
标准输出:有限 double 变量可能具有的最大指数是: 1023
标准化 double 变量可能具有的最小指数是: -1022
double 类型的负无穷大值是: -Infinity
double 类型的正无穷大值是: Infinity
1.0 除以 0 的结果是: Infinity
-1.0 除以 0 的结果是: -Infinity
double 类型能表示的最大值是: 1.7976931348623157E308
double 类型能表示的最小值是: 4.9E-324