课时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测评
769 0
|
应用服务中间件
./configure *: No such file or directory
今天在CentOS下安装Nginx时,遇到了类似以下的问题: ./configure auto/unix: No such file or directory ./configure auto/options: No such file or directory 之前在另一台服务器上安装的时候也没有遇到此问题, 安装过程参考:CentOS6.5下Nginx1.7.4安装记录 于是网上搜索解决方案,但是搜索了很久也没有找到解决方案, 当我使用“mkdir auto/unix”之后,还是提示类似的错误,但目录名又变了。
3600 0
|
4月前
|
存储 JSON 安全
体育直播平台任务模块开发详解:实现签到、分享、邀请注册激励闭环设计思路
本文详解东莞梦幻网络科技体育直播平台的用户任务系统设计,涵盖签到、分享、邀请注册等任务流程,以及积分奖励机制、技术架构与风控策略,展现任务系统如何提升用户活跃与平台增长。
|
2月前
|
JSON 数据安全/隐私保护 开发者
1688 item_search 接口对接全攻略:从入门到精通
本文详解1688开放平台item_search接口对接全流程,涵盖接口功能、参数说明、OAuth2.0授权、签名生成、Python代码实现及优化技巧,助力开发者高效完成B2B商品搜索集成,适用于采购系统、选品分析等场景。
|
4月前
|
存储 固态存储 算法
固态硬盘损坏后还能做数据恢复吗?完整指南
固态硬盘(SSD)因速度快、抗震动、低噪音被广泛使用,但一旦损坏,用户常因慌乱导致二次损失。本文解析SSD损坏后的数据恢复可行性,介绍逻辑损坏、固件异常、物理损坏三种常见情况,并提供对应的恢复方法与预防措施,帮助用户科学应对数据丢失风险,提升恢复成功率。
|
4月前
|
人工智能 自然语言处理 安全
如何让 AI 工具更懂你,更听话?
你是否也曾被AI“气到吐血”?明明说的是A,AI却给了B?别沮丧,2025年的AI也需要“正确沟通”。本文教你五大提示技巧:动态提示、多模态输入、Few-shot示例、任务分解与安全边界,让AI从“人工智障”变身“贴心助手”。学会“说AI的语言”,释放创造力,提升效率,开启智能生活新时代!
1340 0
|
9月前
|
运维 测试技术
当一个按键“摆烂”时,需要更换整个键盘吗?
键盘按键失灵时,别急着更换整个键盘!本文教你通过三步解决:诊断病因、对症下药、预防复发。首先进行“键盘体检”,包括跨设备验证、软件驱动测试、BIOS检测及硬件检查,找出是污垢、物理损坏还是电路故障。接着针对问题提供治疗方案,如更新驱动、清洁键槽或更换零件。最后提醒大家优先排查软件问题,温柔清洁,理性对待物理损坏,并建议选购可维护性强的键盘。记住,善待键盘,远离零食屑,让输入更顺畅!
484 3
|
机器学习/深度学习 数据采集 算法
Python实现PSO粒子群优化支持向量机回归模型(svr算法)项目实战
Python实现PSO粒子群优化支持向量机回归模型(svr算法)项目实战
|
数据采集 机器学习/深度学习 搜索推荐
大数据与社交媒体:用户行为分析
【10月更文挑战第31天】在数字化时代,社交媒体成为人们生活的重要部分,大数据技术的发展使其用户行为分析成为企业理解用户需求、优化产品设计和提升用户体验的关键手段。本文探讨了大数据在社交媒体用户行为分析中的应用,包括用户画像构建、情感分析、行为路径分析和社交网络分析,以及面临的挑战与机遇。
1002 3