JavaSE:浮点数扩展

本文通过两个实例展示了Java中float与double类型的精度问题,揭示了浮点数运算和比较时可能遇到的陷阱。文章强调在需要精确计算的场景下,如银行业务,应避免使用浮点数,转而采用BigDecimal类来确保数值的准确性。
摘要由CSDN通过智能技术生成

本篇文章将以如下两个简单的案例为例,对Java浮点数数据类型做一些简单扩展总结。

案例一:float与double

代码如下:

float f=0.1f;    //0.1
double d=1.0/10; //0.1
System.out.println(f==d);
System.out.println(f);
System.out.println(d);

运行结果如下,和我们想的一样,f和d是不相等的。
在这里插入图片描述

案例二

float f1=2131313131313f;
float f2=f1+1;
System.out.println(f1=f2);

运行结果如下,在这里,f1是我们随便输入的数据,f2=f1+1。f1和f2是两个完全不一样的数据,然而结果f1=f2。
在这里插入图片描述

总结

浮点数能表现的字长往往是有限的,同时也是离散的,浮点数一般存在舍入误差,接近但不等于。所以最好完全避免使用浮点数进行比较。例如银行业务不使用float或double进行比较,使用的是BigDecimal类(数学工具类)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值