类型 | 占用存储空间 | 表数范围 |
Float | 4字节 | -3.403E38~3.403E38 |
Double | 8字节 | -1.798E308~1.798E308 |
浮点数常量默认类型是double,要将其变为float类型,需要在后面增加F/f。如:3.14F
float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。
double表示这种类型的精度是float类型的两倍,又被称作双精度,绝大部分应用程序再用double类型。
Java浮点类型常量有两种表示形式
十进制数形式,例如:
3.14、314.0、0.314
科学记数法形式,如:
314e2、314E2、314E-2(不区分大小写)
31400、31400、3.14
总结
1.默认是右边的数值是double类型。
2.浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
3.避免比较中使用浮点数。
float f=0.1F;
double f1=0.1;
System.out.println(f==f1);//false