首页 > 编程笔记 > Java笔记 阅读:38

Java Double类的用法(附带实例)

Java 中的 Double 类和 Float 类分别封装的是基本类型 double 和 float。由于它们都是 Number 类的子类,并且都是对浮点数进行操作的,因此它们的常用方法基本相同。本节将对 Double 类进行讲解。

Double 类在对象中包装一个基本类型为 double 的值,每个 Double 类的对象都包含一个 double 类型的字段。

Double 类还提供多个方法,可以将 double 类型转换为 String 类型,将 String 类型转换为 double 类型,也提供了其他一些处理 double 类型时有用的常量和方法。Double 类的常用方法如下表所示:

表 1 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 类还提供了以下常量:
例如:
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

相关文章