C语言程序设计案例式教程(第2版)
上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字节。