Java 中的雙精度資料型別最大值

Mohammad Irfan 2021年11月8日
Java 中的雙精度資料型別最大值

本教程介紹什麼是 Java 中的雙精度資料型別最大值以及如何計算 Java 中 double 資料型別的最大值。

Double 是 Java 中儲存浮點值的一種資料型別。它的大小為 16 位元組,可用於儲存 Java 中的最大值。

Java 在 Double 包裝器中提供了一個常量 MAX_VALUE,可用於獲取最大浮點值。它表示 double 型別可以容納的最大值。

Java double 型別遵循 IEEE 754 規範並使用其 52 個二進位制位來儲存值的尾數部分。讓我們通過一些例子來理解雙精度的最大值。

Java 雙精度資料型別最大值

在這個例子中,我們使用了 Double.MAX_VALUE 常量並獲得了 Java 中 double 型別可以容納的最大值。請參閱下面的示例。

public class SimpleTesting{
    public static void main(String[] args) {
        double max_value = Double.MAX_VALUE;
        System.out.println(max_value);
    }
}

輸出:

1.7976931348623157E308

讓我們看看如果我們向 max_value 新增任何值會發生什麼。如果我們嘗試新增 1.01,max_value 不會改變,變數只儲存 max_value。這意味著將值新增到 double 不會溢位範圍。請參閱下面的示例。

public class SimpleTesting{
    public static void main(String[] args) {
        double max_value = Double.MAX_VALUE;
        System.out.println(max_value);
        max_value = max_value+1.01; // increment
        System.out.println(max_value);
    }
}

輸出:

1.7976931348623157E308
1.7976931348623157E308

可是等等。如果我們將 Double.MAX_VALUE 乘以 1.01,則它會變為正無窮大,這意味著如果我們嘗試分配一個大於 max_value 的值,它會變為正無窮大。

因此,在使用 double 時,你必須小心 max_value 限制;否則,它將趨於無窮大。請參閱下面的示例。

public class SimpleTesting{
    public static void main(String[] args) {
        double max_value = Double.MAX_VALUE;
        System.out.println(max_value);
        max_value = max_value*1.01;
        System.out.println(max_value);
    }
}

輸出:

1.7976931348623157E30
Infinity