A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

浮点类型在使用的过程中,常见的问题有以下几点:
1) 浮点数的直接量为double类型。
2) 浮点数存在舍入误差问题。
下面分别做详细介绍:
(1):浮点数的直接量为double类型
浮点数,就是小数,包括: float和double。默认的浮点直接量为double型,如果需要表示float类型的直接量,需要加“f”或“F”后缀。请看如下代码:
    float f1 = 3.14 ;
以上代码,会出现编译错误。3.14是double类型的直接量,如果表示float类型的直接量应该写成3.14f。
(2):浮点数存在舍入误差问题
由于浮点数内部用二进制的方式来表示十进制,会存在舍入误差。二进制系统中无法精确的表示1/10,就好像十进制系统中无法精确的表示1/3一样。对于一些要求精确运算的场合会导致代码的缺陷。请看如下代码:
double money = 3.0;
double price = 2.9;
System.out.println(money - price);
上述代码的输出结果为:
0.10000000000000009
查看上述结果,并没有如我们想象的为0.1。如果需要精确的运算可以考虑放弃使用double或float而采用BigDecimal 类来实现。关于这一点,将在后续的章节中介绍。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马