上QQ阅读APP看书,第一时间看更新
3.浮点型
浮点型又称实型,是指包含小数部分的数据类型。C语言中的浮点型主要包括float(单精度浮点型)和double(双精度浮点型)两种,double类型变量表示的浮点数比float类型变量表示的浮点数更精确。
表2-11列举了float类型和double类型占用的存储空间大小及其取值范围。其中E表示以10为底的指数,E后面的“+”和“-”分别代表正指数和负指数,例如,1.4E-45表示1.4×10-45。
表2-11 浮点型占用的空间及其取值范围
为了帮助读者更好地理解浮点型数据在内存中的存储方式,下面以单精度浮点数3.14159为例,讲解浮点型数据在内存中的存储方式。编译器在存储浮点型数据3.14159时,会将浮点数分成符号位、小数位和指数位3个部分,然后分别存储到内存单元中,如图2-8所示。
图2-8 单精度浮点数的存储方式
在图2-8中,小数3.14159在内存中的符号位为“+”,小数部分为“.31415”,指数位为“1”,合在一起为+0.314159×101= 3.14159。
在定义浮点型变量时,可以在float类型变量赋值的后面加上大写字母“F”或小写字母“f”;在double类型变量赋值的后面加上大写字母“D”或小写字母“d”,具体示例如下。
float f1 = 123.4f; //为一个float类型变量赋值,后面可以加上字母f float f2 = 123.4; //为一个float类型变量赋值,后面可以省略字母f double d2 = 199.3d; //为一个double类型变量赋值,后面可以加上字母d double d1 = 100.1; //为一个double类型变量赋值,后面可以省略字母d
浮点型常量默认是double类型(如2.56),占据8字节。在浮点型常量后面加上“F”或“f ”,该数据就是float类型(如2.56f为float类型),占据4字节。