课时13:浮点型数据

简介: 课时13介绍了浮点型数据在Java中的使用。浮点型用于表示小数,默认类型为Double,建议直接使用Double定义小数。代码示例展示了如何定义和操作Double及Float类型的变量,并解释了自动类型转换和强制类型转换的规则。此外,还通过整型与浮点型的运算对比,强调了选择合适数据类型的重要性,以避免精度损失和计算错误。

课时13:浮点型数据

浮点型数据描述的是小数,而在 Java 里面任意的一个小数常量其对应的类型为 Double ,所以在以后描述小数的时候都建议大家直接使用 Double 来进行定义。


范例:定义 Double 的变量

public class JavaDemo {
public static void main(String args[]) {
 //10.2是一个小数其对应的类型为double
 double x =10.2;
 int y =10;
 // double类型*int类型=double
 double result = x*y;
 System.Out.println(result);
}
}

image.png

所有的数据类型进行自动转型的时候都是由小类型向大类型进行自动转换处理。默认的类型为 Double ,但也可以定义位数相对较少的 Float 变量。此时从赋值的时候就必须采用强制类型的转换。


范例:定义 Float 变量

public class JavaDemo {
public static void main(String args[]) {
 float x =(float)10.2;
 float y =10.1F;
 System.Out.println(x*y);//float型
}
}

image.png

比如  Float x = 10.2,按照我之前提到的,任何一个小数默认都是Double类型,这里相当于从 Double 转换为 Float 。因此,运行结果会提示类型不兼容,指出从 Double 转换为 Float 可能会导致精度损失。那么,这里能不能进行强制类型转换呢?把代码写到这里,大家发现是否可行?是可以的。

除了强制类型转换之外,还有一种方法: Float y = 10.1 F 。这与我们之前提到的L类似,都是用来指定类型为 Float 。接下来,我们继续执行 System.Out.Println ( x * y ),结果应该是 Float 类型。现在,我们对代码进行编译,然后将代码定位到这里,再次执行。

大家看一下结果。这也是我希望你们看到的结果。因为你会发现,结果中除了正常的数值外,后面还出现了一串小数点。这个结果前面是正确的,但后面的小数点是 Java 自诞生以来一直存在的问题,无法解决。如果使用 Float 进行操作,就需要考虑到这些情况。

通过一系列的代码分析发现,整型是不包含有我们小数点的,而浮点型是包含有小数点的。


范例:观察一个程序

public class JavaDemo {
public static void main(String args[]) {
 int x =10;
 int y =4;
 System.Out.println(x/y);
}
}

此时的叫计算结果为2,得到2的主要原因在于:整型是不保存有小数点的,所以现在的计算结果为“2.5”,抛开小数点不看,最终的结果只是2。如果现在要想得到所需要的正确的计算,那么就需要进行转型处理。

image.png


范例:数据转型

public class JavaDemo {
public static void main(String args[]) {
   int x =10;
 int y =4;
   System.Out.println((double)x/y);
 }
}

以这个代码为例,在程序中假设代码为System.Out.Println ((Double) x / y) ,如果 x 被强制转换为 Double ,那么计算就变成了 Double 除以 Int ,结果自然是所有范围小的数据类型会自动转换为范围大的类型,即 Int 会转换为 Double 。那么最终结果就是正常的2.5。因此,在这一点上,大家一定要把握住原则。

image.png

在以后计算的时候千万要注意你选择的数据类型,将直接决定小数点的问题,这一点至关重要。

 


相关文章
|
负载均衡 Kubernetes Java
MSE-Nacos测评
MSE-Nacos测评
464 0
|
11月前
|
数据采集 机器学习/深度学习 搜索推荐
大数据与社交媒体:用户行为分析
【10月更文挑战第31天】在数字化时代,社交媒体成为人们生活的重要部分,大数据技术的发展使其用户行为分析成为企业理解用户需求、优化产品设计和提升用户体验的关键手段。本文探讨了大数据在社交媒体用户行为分析中的应用,包括用户画像构建、情感分析、行为路径分析和社交网络分析,以及面临的挑战与机遇。
|
机器学习/深度学习 数据采集 算法
Python实现PSO粒子群优化支持向量机回归模型(svr算法)项目实战
Python实现PSO粒子群优化支持向量机回归模型(svr算法)项目实战
|
算法 数据挖掘 开发工具
以阿里云OpenSearch为例谈向量检索技术选型
本文从向量检索应用场景、常见的向量检索方法、向量检索性能优化、功能性能对比介绍了向量检索的业务应用场景和技术选型方式。
4044 3
|
关系型数据库 MySQL 数据库
精通MySQL:数据库管理、性能优化与最佳实践
h3> 一、引言 MySQL是一个功能强大的开源关系型数据库管理系统,广泛应用于各种Web应用、企业级应用和数据分析等领域
1477 0
|
SQL 弹性计算 分布式计算
数据湖构建—如何构建湖上统一的数据权限
阿里云数据湖构建产品(DLF)提供的统一元数据服务,通过完善各种引擎/表格式生态解决了数据湖场景下多引擎面临的数据孤岛和元数据一致性问题,实现了开源大数据引擎及数据湖格式元数据的统一视图,避免了各引擎访问湖上数据其中额外的ETL成本并降低了业务处理链路的延时。
1784 0
数据湖构建—如何构建湖上统一的数据权限
|
网络协议 图形学
Socket TCP协议解决粘包、半包问题的三种解决方案
Socket TCP协议解决粘包、半包问题的三种解决方案
489 2
Socket TCP协议解决粘包、半包问题的三种解决方案
|
存储 分布式计算 安全
阿里巴巴云数据仓库 MaxCompute 数据安全最佳实践
MaxCompute作为企业级SaaS模式云数据仓库,正在为客户业务及其数据提供持续的安全保护。 MaxCompute 近期对产品的安全能力进行了全面升级 ,结合数据生命周期,针对数据误用、数据滥用、数据泄露、数据丢失等典型数据风险场景,构建全生命周期的数据安全防护体系。
18286 3
阿里巴巴云数据仓库 MaxCompute 数据安全最佳实践
|
IDE 开发工具 数据安全/隐私保护
彻底卸载 Visual Studio 2019【完整版
彻底卸载 Visual Studio 2019【完整版
615 0
彻底卸载 Visual Studio 2019【完整版
|
SQL 分布式计算 BI
spark在生产中是否要禁止掉BHJ(BroadcastHashJoin)
spark在生产中是否要禁止掉BHJ(BroadcastHashJoin)
883 0
spark在生产中是否要禁止掉BHJ(BroadcastHashJoin)