问题
在我们使用浮点类型的过程中,会遇到一些问题,在此将这些问题进行汇总,在今后的使用过程中,避免出错。即使出现错误也可以很快的找到问题所在。
方案
浮点类型在使用的过程中,常见的问题有以下几点:
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类来实现。关于这一点,将在后续的章节中介绍。
关注公众号,获取学习视频