一、浮点类型分类
类型 | 占用存储空间 | 范围 |
单精度float | 4字节 | -3.404E38~3.403E38 |
双精度double | 8字节 | -1.798E308~1.798E308 |
说明:
1.关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位
2.尾数部分可能丢失,造成精度损失(小数都是近似值)
二、使用细节
1.与整数类型类似,浮点类型也有固定的范围和长度,不受具体操作系统的影响
2.java的浮点型默认是double型,声明float型常量需要加f或F
3.浮点型有两种表示形式:
(1)十进制形式:如5.12 512.0f .512 必须要有小数点
(2)科学计数法:5.12e2 5.12E-2
public class DoubleDemo {
public static void main(String[] args) {
double num1 = 1.1;
double num2 = 1.1f;
double num3 = .123;
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(5.12e3); // 5120.0
System.out.println(5.12E-2); // 0.0512
}
}
4.通常情况下,应该使用double型,因为它比float型更精确
public class DoubleDemo {
public static void main(String[] args) {
double num1 = 1.1234567821;
float num2 = 1.1234567821F;
System.out.println(num1); // 1.1234567821
System.out.println(num2); // 1.12345678
}
}
5.浮点型使用陷阱: 2.7 和8.1/3
public class DoubleDemo {
public static void main(String[] args) {
double num1 = 2.7;
double num2 = 8.1 / 3;
System.out.println(num1); // 2.7
System.out.println(num2); // 2.6999999999999997
}
}