Java基础——数据类型
1.Java的8种基本数据类型
两个整数运算结果默认为int,在进行转换。
2.数据类型之间的转换
(1)自动类型转换
(2)强制类型转换
int a=100587;
byte b=(byte)a;
强制转换会导致精度丢失
3.浮点类型数据的精度丢失
浮点类型数据在计算机中的存储方式
float类型数据存储需求是4字节(32bit),其中最高位是符号位,中间8位是阶位,后23位是值
double类型数据存储需求是8字节(64bit),其中最高位是符号位,中间11位是阶位,后52位是值
首先看一个例子
public class Test{
public static void main(String[]args){
System.out.println(1.2-1);
}
}
输出结果为0.19999999999999996
结果跟我们预期的不一样
我们将10进制的0.2转化为2进制进行储存
0.22=0.4 取整数部分0
0.42=0.8 取整数部分0
0.82=1.6 取整数部分1
0.62=1.2 取整数部分1
0.2*2=0.4 取整数部分0
……
从上到下0.2的二进制为00110011……
在上面的计算过程中,由于小数部分永远存在,算法就会无限循环下去,所以0.2的二进制不会被精确地表示。