Java 中的浮点数和 Double 数据类型

Rupam Yadav 2023年10月12日
Java 中的浮点数和 Double 数据类型

Float 和 double 数据类型用于在 Java 中存储实数或浮点数,但 double 数据类型比 float 更精确。double 是浮点数的默认数据类型。

精确存储浮点数

float 是 32 位 IEEE 754 浮点,而 double 是 64 位 IEEE 754 浮点。与 double 相比,Float 的范围较小。

在下面给出的示例中,我们有 double 数据类型的 d,它是通过将两个 double 变量 d1d2 相除而获得的。类似地,当两个 float 变量 f1f2 相除时,我们有 f1 结果。在 double 的情况下,不需要使用后缀 dD,而对于 float 类型的数据,我们需要使用后缀 fF 作为默认值,所有实数数字在 Java 中被视为双精度

在输出中,我们可以看到 double 变量 d 的精度和准确度高于 float 变量 f。我们知道 double 是比 float 更大的数据类型,所以我们需要向下转换它。要将 double 类型转换为 float,我们需要在十进制值之前的方括号中提及 float 关键字。

在输出中可以看出,通过将 double 变量转换为 float 会丢失数据和精度,因为我们将较大的数据类型存储到较小的数据类型中。因此,double 需要更多的内存来存储双精度浮点数并给出准确的结果。

public class Test {
  public static void main(String args[]) {
    double d1 = 10.0;
    double d2 = 3.0;
    double d = d1 / d2;
    System.out.println("double d : " + d);

    float f1 = 10.0f;
    float f2 = 3.0f;
    float f = f1 / f2;
    System.out.println("float f : " + f);

    float f3 = (float) d;
    System.out.println("float f3 : " + f3);

    double d3 = f;
    System.out.println("double d3 : " + d3);
  }
}

输出:

double d : 3.3333333333333335
float f : 3.3333333
float f3 : 3.3333333
double d3 : 3.3333332538604736

两种数据类型之间的差异可以用给定的表格数据来说明。

数据类型 精度 大小 Default 数据类型 默认值 后缀 包装类 数据丢失 关键词
float 单精度(6-7 位十进制数字) 32 位 0.0f 使用 f 或 F。我们需要添加这个后缀,因为默认情况下浮点数显式被视为双精度 java.lang.Float 将 float 转换为 double 时不会丢失数据 关键字 float 用于浮点类型
double 双精度(15-16 位十进制数字) 64 位 0.0d 使用 d 或 D。可选择使用后缀 java.lang.Double 将 double 转换为 float 时数据丢失 关键字 double 用于定义双精度数

Float 和 double 用于表示实数。两种数据类型都不精确;它们是近似类型。当我们需要准确而精确的结果时,我们应该选择双倍。如果有任何内存和空间限制,则应考虑浮点数。

作者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相关文章 - Java Double

相关文章 - Java Float