Java 中的浮点数和 Double 数据类型
Float 和 double 数据类型用于在 Java 中存储实数或浮点数,但 double 数据类型比 float 更精确。double
是浮点数的默认数据类型。
精确存储浮点数
float
是 32 位 IEEE 754 浮点,而 double 是 64 位 IEEE 754 浮点。与 double 相比,Float
的范围较小。
在下面给出的示例中,我们有 double
数据类型的 d
,它是通过将两个 double
变量 d1
和 d2
相除而获得的。类似地,当两个 float
变量 f1
和 f2
相除时,我们有 f1
结果。在 double
的情况下,不需要使用后缀 d
或 D
,而对于 float
类型的数据,我们需要使用后缀 f
或 F
作为默认值,所有实数数字在 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 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 中将 Int 转换为 Double
- 在 Java 中将 Long 转换为 Double
- Java 中的双精度
- 在 Java 中比较双精度数
- 在 Java 中将 Double 转换为字符串