Java入门第11课——浮点类型(float、double)使用常见问题汇总

本文汇总了Java中浮点类型(float、double)使用时的常见问题,包括浮点数默认为double类型及舍入误差。解决方案指出,表示float类型需加"f"后缀,且浮点数运算可能存在舍入误差,对精确计算场景建议使用BigDecimal。
摘要由CSDN通过智能技术生成

问题

        在我们使用浮点类型的过程中,会遇到一些问题,在此将这些问题进行汇总,在今后的使用过程中,避免出错。即使出现错误也可以很快的找到问题所在。

方案

        浮点类型在使用的过程中,常见的问题有以下几点:

        1)浮点数的直接量为double类型。

        2)浮点数存在舍入误差问题。

步骤

        实现此案例需要按照如下步骤进行。

步骤一:浮点数的直接量为double类型

        浮点数,就是小数,包括:float和double。默认的浮点直接量为double型,如果需要表示float类型的直接量,需要加"f"或"F"后缀。请查看如下代码:

float f1=3.14;

        以上代码,会出现编译错误。3.14是double类型的直接量,如果表示float类型的直接量应该写成3.14f。

步骤二:浮点数存在舍入误差问题

        由于浮点数内部用二进制的方式来表示十进制,会存在舍入误差。二进制系统中无法精确的表示1/10,就好像十进制系统中无法精确的表示1/3一样。对于一些要求精确计算的场合会导致代码的缺陷。请看如下代码:

double money=3.0;
double price=2.9;
System.out.println(money-price);

        上述代码的输出结果为:

0.10000000000000009

        查看上述结果,并没有如我们想象的为0.1。如果需要精确的运算可以考虑放弃使用double或float而采用BigDecimal类来实现。关于这一点,将在后续的章节中介绍。

关注公众号,获取学习视频

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猴子学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值