1.浮点类型在机器中存放形式 (重点记忆)
浮点数(float,double) = 符号位 + 指数位 + 尾数位
// 符号位上篇我们有讲过,这里不做重复
// 指数位:决定取值范围
// 尾数位:决定精度
2.java浮点数默认类型为double
System.out.println(1.0); //通过debug(idea中在行最左边点一下有个红点,可以用来debug)
3.浮点型常量表示形式
// 十进制:5.12 5.12f
// 科学计数法:5.12e2 5.12E-4
4.通常使用double类型,因为比float更精确
float f = (float) (1/3.0);
double d = 1.0/3;
System.out.println(f); //0.33333334
System.out.println(d); //0.3333333333333333
float f1 = 1/3;
double d1 = 1/3;
System.out.println(f1); //0
System.out.println(d1); //0
5.浮点数使用陷阱 ----因为第1点
double a = 2.7;
double b = 8.1/3;
if (a == b){
System.out.println("相等");
} else {
System.out.println("不相等");
}
// 不相等
if (Math.abs(a-b) < 0.01){
System.out.println("相等");
}else {
System.out.println("不相等");
}
// 相等
// 如果< 0.000000000000000000001(反正是超多0),它会不相等 这里的0.01是相对精度
6.使用BigDecimal进行比较精确的计算(建议百度,我讲不清楚…)