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 用于表示实数。两种数据类型都不精确;它们是近似类型。当我们需要准确而精确的结果时,我们应该选择双倍。如果有任何内存和空间限制,则应考虑浮点数。
相关文章
如何在 Java 中延迟几秒钟的时间
发布时间:2023/12/17 浏览次数:217 分类:Java
-
本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。
如何在 Java 中把 Hashmap 转换为 JSON 对象
发布时间:2023/12/17 浏览次数:187 分类:Java
-
它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。
如何在 Java 中按值排序 Map
发布时间:2023/12/17 浏览次数:171 分类:Java
-
本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map
进行排序,并列出了一些示例代码来理解它。
如何在 Java 中打印 HashMap
发布时间:2023/12/17 浏览次数:192 分类:Java
-
本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。
在 Java 中更新 Hashmap 的值
发布时间:2023/12/17 浏览次数:146 分类:Java
-
本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。
Java 中的 hashmap 和 map 之间的区别
发布时间:2023/12/17 浏览次数:79 分类:Java
-
本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,
在 Java 中获取用户主目录
发布时间:2023/12/17 浏览次数:218 分类:Java
-
这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。
Java 中 size 和 length 的区别
发布时间:2023/12/17 浏览次数:179 分类:Java
-
这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。
Java 中的互斥锁
发布时间:2023/12/17 浏览次数:111 分类:Java
-
了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,