浮点型分为两个字节大小的类型:float(4字节)-【3.403E38—3.403E38;】;double(8字节)【-1.798E308—1.798E308】
问:同样的字节表示整数为何比浮点型的少很多?
答:因为整数是每一个数都能精确表示,浮点数由于带小数可以有无限个数,无论你多精确都有无限个小数。所以浮点数并不是绝对精确的,是有误差的。
Java浮点类型常量有两种形式 | 十进制数形式:33.14、5.22、0.1 |
---|---|
科学计数法:314E2=31400、314E-2=3.14 |
float类型被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下都难以满足要求。、
double因为字节是float的两倍又被称作双精度类型,绝大部分应用程序都使用double类型
代码如下:
public class Textdatetype{
public static void main(String[] args){
float a=3.14;//报错,浮点数值默认属于double类型,虽然在flaot的表示范围中但是 double表示的3.14精确度要比flaot的高得多所以不能赋值这个跟整数是根本的区别
float a1=3.14F;//正确的表示方式先转换再赋值
double b=314e-2;
double c=3.14;
float d=3.14F;
System.out.println(b);
System.out.println(c==d);//flast 原因就是精度有差距所以是不等于
}
}