浮点类型: float、double
类型 | 占用存储空间 | 表数范围 |
单精度 float | 4字节 | -3.403E38~3.403E38 |
双精度 double | 8字节 | -1.798E308~1.798E308 |
浮点型常量有两种表现形式
十进制数形式。如 4.14、5.24、5.45f、.567 (必须要有小数点)
科学计数法形式。 如 5.12e2、512E2、100E-2
float: 单精度。尾数可以精确到7位有效数字,很多情况下。精度很难满足要求
double:双精度。精度是float的两倍,通常采用此类型
定义float类型的变量,通常需要用小写字母“f”或大写字母“F”作为后缀
java的浮点型常量默认为double类型
关于浮点型进度的说明
并不是所有的小数都能精确的用二进制浮点数表示。如0.1,0.01,0.001这样的10的负次幂
float 比long类型表示的范围大,但是精度不高
浮点数类型float、double的数据不适合用于不容许舍入误差的金融计算领域。如果需要精确数字计算或保留指定位数的精度,需要使用BigDecimal类
案例
class FloatTest {
public static void main(String[] args) {
float f7 = 0.5666f;
double f8 = 1.78884;
System.out.println(f8);
System.out.println(0.1 + 0.2);
// 测试2
float ff1 = 123123123f;
float ff2 = ff1 +1;
System.out.println(ff1);
System.out.println(ff2);
System.out.println(ff1 == ff2);
// 测试3
double pi = 3.14;
double raduis1 = 1.2;
double raduis2 = 2.5;
double raduis3 = 8;
double area1 = pi * raduis1 * raduis1;
double area2 = pi * raduis2 * raduis2;
double area3 = pi * raduis3 * raduis3;
System.out.println(area1);
System.out.println(area2);
System.out.println(area3);
double hua = 80;
double cshidu = (hua - 32) / 1.8;
System.out.println(cshidu);
}
}