讲下float类型、
float类型是32位的,16位的尾数,16位的阶码
如果使用a表示尾数,b表示阶码,则尾数和阶码就可以组成
a*2^b
范围的浮点数,下面是示例代码
long lg = 10L;
//int x = lg; //WA: 编译错误
float f = lg; //AC: float的精度比long还高
System.out.println( f );
double的道理相通,浮点数的范围确实很大,比long大得多,精度也很高,但是他是近似表示的,例如
double s=0;//浮点数是近似表示
for(int i=0;i<9;i++){
s = s+0.1;
}
System.out.println(s);
就是输出了0.8999999999999999